Forståelse og skrivning af Linux-variabler i Shell Scripting - Del 10


Linux shell scripting sprog har altid været et varmt emne og vil altid være i fremtiden. Shell Scripting Language er magisk, og det er så let at lave et program på scripting-sprog som på ethvert andet sprog. Det har dog brug for en grundig viden om, hvad vi laver, og hvad resultatet forventes.

Alle shell-scripting-artikler, vi har skrevet til vores læsere, er meget værdsat, inklusive den sidste "An Insight of Linux Variables". Vi udvider den sidste artikel til et nyt niveau.

Variable attributter

Hver variabel i Linux-miljø har visse muligheder, og de kaldes 'attributter'. Disse indstillinger eller attributter kan slåes til Til og Fra , når det er nødvendigt i henhold til situationen ved hjælp af kommandoen "erklær".

Et eksempel på variabelattribut er at bruge en switch, der siger ' -i ', som tænder heltalattributten for den tilsvarende variabel. Selvom en ikke-numerisk værdi sendes til at skifte ' -i ', vil den ikke kaste en fejlmeddelelse og output ' 0 ' som heltalstolkning. Her bliver det mere tydeligt fra nedenstående eksempel.

Erklær et variabelt heltal, bill = 121

[email :~$ declare -i bill=121

Printf værdien af variabel regning.

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

121

Lad variabelværdien være en streng. Den variable regning er allerede erklæret, ikke nødvendigt at erklære den anden gang. Du skal bare ændre værdien af variablen som.

[email :~$ bill=tecmint

Nu igen printf værdien af variabel regning.

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

0

Bemærk ' 0 ' i stedet for fejlmeddelelsen.

[email :~$ declare -p bill 

declare -i bill="121"

Her kommer en -p (står for udskrivning) switch til redning.

For at slå Fra er attributterne for en variabel, hvad vi alle har brug for, at sætte et + ( plus ) tegn lige før switchen. Her er det mere klart fra nedenstående eksempel.

Sluk Fra heleattributten for ovenstående variabel.

[email :~$ declare +i bill

Kontroller værdien af variablen.

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

bash: printf: bill: invalid number
0

Udskriv nu værdien af variablen ved hjælp af switchstreng.

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

tecmint

Her i ovenstående eksempel kunne bash ikke bedømme ikke-numerisk værdi som fejl, men printf fortolker, hvad der kan være et tal, og hvad der ikke kan være.

Skrivebeskyttede variabler

Du har muligvis hørt Read Only Memory ( ROM ), men hvad er skrivebeskyttet variabel? Har det nogen lighed med ROM?

Godt-skrivebeskyttede variabler som skrivebeskyttet hukommelse er noget, hvis værdi ikke kan ændres, når den først er tildelt. Derfor kaldes det skrivebeskyttet. Du kan ikke skrive, redigere eller ændre en ny værdi for den pågældende variabel. Her er en illustration ved hjælp af et eksempel.

Dekalér et skrivebeskyttet ( -r ) variabelnavn, hvis værdi er “linux-console.net”.

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

Printf værdien af ovennævnte deklarerede variabel.

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

linux-console.net

Prøv at ændre værdien af variablen.

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

bash: declare: name: readonly variable

Som diskuteret ovenfor kan attributterne for en skrivebeskyttet variabel ændres ved hjælp af ' + ' tegnet.

Eksport af variabler i Linux

Alle shellvariabler, der er deklareret i et shell-script, er tilgængelige, indtil scriptet kører. Uden for scriptet findes variablen fra scriptet ikke. Processen med at gøre variabler tilgængelige uden for scriptet kaldes eksportvariabler.

En variabel kan eksporteres uden for skallen ved hjælp af switch erklær -x (eksport), som anerkender skallen, hvad du ønskede at eksportere. En erklær eksportkontakt kan bruges som.

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

Alle ændringer, der er foretaget i variablen, mens scriptet kører, går tabt, når variablen eksporteres uden for scriptet. Eksport af variabel er meget vigtig i shell-scripting.

Vi ønsker at have en variabel, der skal være skrivebeskyttet og tilgængelig uden for scriptet, vi skal bruge switch -r og switch -x på samme tid.

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

miljøvariabler

De variabler, der deles mellem programmet og det program, der udfører dem. Miljøvariabler kan eksporteres, men attributterne kan ikke tildeles det.

Forståelse af ovenstående teori praktisk. Her har vi to scripts 0.sh og 1.sh .

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

Og det andet script er.

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

Her, hvad der foregår, er en variabel (navn) erklæres som skrivebeskyttet og eksporteres, og umiddelbart efter kaldes det andet script.

Det andet script udskrev netop variablen fra det første script, der blev eksporteret i den første printf -erklæring. I den anden printf-sætning viser den den nye værdi, der er tildelt variablen ' navn '.

Ingen grund til at bekymre sig om, at variablen var skrivebeskyttet, hvordan kan den tildeles igen. Kan du ikke huske, at "Alle ændringer, der er foretaget i variablen, mens scriptet kører, går tabt, når variablen eksporteres uden for scriptet."

Kommandoen erklær tillader alle nedenstående kontakter sammen med deres kombination.

  1. -a : Erklærer en matrix.
  2. -f : Displayfunktion og definition.
  3. -F : Visningsfunktionsnavn.
  4. -r : Erklær variabel som skrivebeskyttet.
  5. -x : Erklær variabel som eksportbar.
  6. -I : Erklær variabel som heltal.

Det er alt for nu. I den næste artikel diskuterer vi måder at erstatte variabler ved hjælp af kommandoen ' eval ' og de variabler, der allerede er defineret i bash, inden vi lukker dette emne. Håber, at du nyder din rejse til dybdegående scripting. Indtil da hold dig opdateret og tilsluttet linux-console.net.