Forstå og skrive Linux-variabler i Shell-skripting - Del 10


Linux shell-skriptspråket har alltid vært et hett tema og vil alltid være det i fremtiden. Shell-skriptspråket er magisk og det er så enkelt å lage et program på skriptspråk som på alle andre språk. Det krever imidlertid en inngående kunnskap om hva vi gjør og hva resultatet forventes.

Alle shell scripting-artiklene vi har skrevet for våre lesere er høyt verdsatt, inkludert den siste «An Insight of Linux Variables.» Vi utvider den siste artikkelen til et nytt nivå.

Variable attributter

Hver variabel i Linux-miljøet har visse alternativer, og de kalles attributter. Disse alternativene eller attributtene kan slås og Av, når det er nødvendig i henhold til situasjonen ved å bruke kommandoen \declare.

Et eksempel på variabelattributt er å bruke en bryter si «-i» som vil slå på heltallsattributtet for den tilsvarende variabelen. Selv om en ikke-numerisk verdi sendes til bryteren «-i», vil den ikke gi en feilmelding og sende ut «0» som heltalltolkning. Her blir det mer tydelig fra eksempelet nedenfor.

Deklarer en variabel heltall, regning = 121

[email :~$ declare -i bill=121

Skriv ut verdien av variabel regning.

[email :~$ printf "%d\n" "$bill" 

121

La variabelverdien være en streng. Den variable regningen er allerede erklært, det er ikke nødvendig å deklarere den andre gang. Bare endre verdien av variabel som.

[email :~$ bill=tecmint

Nå, igjen printf verdien av variabel regning.

[email :~$ printf "%d\n" "$bill" 

0

Legg merke til «0» i stedet for feilmeldingen.

[email :~$ declare -p bill 

declare -i bill="121"

Her kommer en -p (står for print) bryter for å redde.

For å slå Av attributtene til en variabel trenger vi alt å sette et + (pluss)-tegn rett før bryteren. Her er det mer tydelig fra eksempelet nedenfor.

Slå Av heltallsattributtet for variabelen ovenfor.

[email :~$ declare +i bill

Sjekk verdien til variabelen.

[email :~$ printf "%d\n" "$bill" 

bash: printf: bill: invalid number
0

Skriv ut verdien til variabelen ved å bruke bryterstrengen.

[email :~$ printf "%s\n" "$bill" 

tecmint

Her i eksemplet ovenfor kunne ikke bash bedømme ikke-numerisk verdi som feil, men printf tolker hva som kan være et tall og hva som ikke kan være det.

Skrivebeskyttede variabler

Du har kanskje hørt Read Only Memory (ROM), men hva er Read-only Variable? Har det noen likhet med ROM?

Vel, skrivebeskyttede variabler som skrivebeskyttet minne er noe verdien som ikke kan endres når den først er tildelt. Derfor kalles det skrivebeskyttet. Du kan ikke skrive, redigere eller endre en ny verdi for den variabelen. Her er en illustrasjon med eksempel.

Merk et skrivebeskyttet (-r) variabelnavn, hvis verdi er \linux-console.net.

[email :~$ declare -r name="linux-console.net"

Skriv ut verdien av ovenfor erklærte variabel.

[email :~$ printf "%s\n" "$name" 

linux-console.net

Prøv å endre verdien på variabelen.

[email :~$ declare -r name="Avishek" 

bash: declare: name: readonly variable

Som diskutert ovenfor kan attributtene til en skrivebeskyttet variabel endres ved å bruke «+»-tegnet.

Eksport av variabler i Linux

Alle shell-variablene som er deklarert i et shell-skript er tilgjengelige til skriptet kjører. Utenfor skriptet eksisterer ikke variabelen fra skriptet. Prosessen med å gjøre variabler tilgjengelige utenfor skriptet kalles eksport av variabler.

En variabel kan eksporteres utenfor skallet ved hjelp av bryteren declare -x (eksport), som bekrefter skallet det du ønsket å eksportere. En deklarer eksportsvitsj kan brukes som.

[email :~$ declare -x variable=”Constant_Value”

Alle endringene som er gjort i variabelen mens skriptet kjører, går tapt når variabelen eksporteres utenfor skriptet. Eksport av variabel er veldig viktig i shell-skripting.

Vi ønsker å ha en variabel som skal være skrivebeskyttet og tilgjengelig utenfor skriptet, vi må bruke bryteren -r og bryteren -x samtidig.

[email :~$ declare -rx variable=”Constant_Value”

Miljøvariabler

Variablene som er delt mellom programmet og programmet som kjører dem. Miljøvariabler kan eksporteres, men attributtene kan ikke tildeles dem.

Forstå teorien ovenfor praktisk. Her har vi to skript 0.sh og 1.sh.

# 0.sh
#!/bin/bash 
declare -rx name=Tecmint 
bash 0.sh 
exit 0

Og det andre manuset er.

# 1.sh
#!/bin/bash 
printf "%s\n" "$name" 
name=linux-console.net 
printf "%s\n" "$name"
exit 0

Her er det som skjer, at en variabel (navn) blir erklært som skrivebeskyttet og eksportert og umiddelbart etter det kalles det andre skriptet.

Det andre skriptet skrev nettopp ut variabelen fra det første skriptet som ble eksportert i den første printf-setningen. I den andre printf-setningen viser den den nye verdien som er tilordnet variabelen «navn».

Ingen grunn til bekymring, at variabelen var skrivebeskyttet, hvordan kan den tilordnes på nytt. Husker du ikke at «Alle endringene som er gjort i variabelen mens skriptet kjører, går tapt når variabelen eksporteres utenfor skriptet.»

Kommandoen declare tillater alle bryterne nedenfor sammen med deres kombinasjon.

  1. -a : Erklærer en matrise.
  2. -f : Skjermfunksjon og definisjon.
  3. -F : Vis funksjonsnavn.
  4. -r : Erklær variabel som skrivebeskyttet.
  5. -x : Erklær variabel som eksporterbar.
  6. -I : Deklarer variabel som heltall.

Det er alt for nå. Aller i den neste artikkelen vil vi diskutere måter å erstatte variabler ved å bruke «eval»-kommandoen og variablene som allerede er definert i bash før vi avslutter dette emnet. Håper dere nyter reisen til dyptgående skripting. Inntil da, følg med og koble til linux-console.net.