Verstinn a Schreiwen Linux Variablen am Shell Scripting - Deel 10


D'Linux Shell Scripting Sprooch war ëmmer e waarmt Thema a wäert ëmmer an der Zukunft sinn. D'Shell Scripting Sprooch ass magesch an et ass sou einfach e Programm an der Scripting Sprooch ze maachen wéi an all aner Sprooch. Wéi och ëmmer, et brauch en am-Déift Wëssen iwwer wat mir maachen a wat d'Resultat erwaart gëtt.

All d'Shell-Skriptartikelen, déi mir fir eis Lieser geschriwwen hunn, sinn héich appréciéiert, dorënner dee leschten \An Insight of Linux Variables.\ Mir verlängeren de leschten Artikel op en neien Niveau.

Variabel Attributer

All Variabel am Linux Ëmfeld huet verschidde Optiounen, an déi ginn 'Attributer' genannt. Dës Optiounen oder Attributer kënnen On an Off ageschalt ginn, wann néideg no der Situatioun mat engem Kommando \deklaréieren.

E Beispill vu verännerlechen Attributer benotzt e Schalter soen '-i', deen den ganzen Attribut fir déi entspriechend Variabel ausschalt. Och wann en net-numeresche Wäert weidergeleet gëtt fir '-i' ze wiesselen, gëtt et keng Fehlermeldung an erausginn '0' als Ganztallinterpretatioun. Hei gëtt et méi kloer aus dem Beispill hei drënner.

Deklaréiert eng Variabel Integer, Rechnung = 121

[email :~$ declare -i bill=121

Printf de Wäert vun variabelen Rechnung.

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

121

Loosst de variabelen Wäert eng String sinn. De verännerleche Gesetzesprojet ass scho deklaréiert, et ass net néideg fir en zweete Kéier ze deklaréieren. Änneren Just de Wäert vun Variabel als.

[email :~$ bill=tecmint

Elo, erëm printf de Wäert vun variabelen Rechnung.

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

0

Notiz '0' op der Plaz vun der Fehlermeldung.

[email :~$ declare -p bill 

declare -i bill="121"

Hei kënnt e -p (steet fir Print) Schalter fir ze retten.

Fir Aus d'Attributer vun enger Variabel ze schalten, brauche mer alles, e + (plus) Zeechen just virum Schalter ze setzen. Hei ass et méi kloer aus dem Beispill hei drënner.

Schalt Aus den ganzen Attribut fir déi uewe genannte Variabel.

[email :~$ declare +i bill

Kontrolléiert de Wäert vun der Variabel.

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

bash: printf: bill: invalid number
0

Dréckt elo de Wäert vun der Variabel mat der Schaltstring.

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

tecmint

Hei am uewe genannte Beispill konnt de Bash net net-numeresche Wäert als Feeler beurteelen, awer printf interpretéiert, wat eng Zuel kéint sinn a wat net kéint sinn.

Lies-nëmmen Variablen

Dir hutt vläicht Read Only Memory (ROM) héieren, awer wat ass Read-only Variable? Huet et eng Ähnlechkeet mat ROM?

Gutt Lies-nëmmen Variablen wéi Read-only Memory ass eppes, dee Wäert vun deem net geännert ka ginn eemol et zougewisen ass. Dofir gëtt et Read-only genannt. Dir kënnt net en neie Wäert fir dës Variabel schreiwen, änneren oder änneren. Hei ass eng Illustratioun mat engem Beispill.

Decalre e liesen nëmmen (-r) Variabel Numm, de Wäert vun deem ass linux-console.net.

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

Printf de Wäert vun der uewen deklaréierter Variabel.

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

linux-console.net

Probéiert de Wäert vun der Variabel z'änneren.

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

bash: declare: name: readonly variable

Wéi uewendriwwer diskutéiert kënnen d'Attributer vun enger liesbare Variabel geännert ginn mat '+' Zeechen.

Export Variablen op Linux

All Shell-Variablen, déi an engem Shell-Skript deklaréiert sinn, sinn verfügbar bis de Skript leeft. Ausserhalb vum Skript existéiert d'Variabel vum Skript net. De Prozess fir Variabelen ausserhalb vum Skript verfügbar ze maachen gëtt Variablen exportéieren genannt.

Eng Variabel kann ausserhalb vun der Shell exportéiert ginn mam Schalter declare -x (Export), déi d'Shell unerkennen wat Dir exportéiere wollt. A deklaréieren Export Schalter kann als benotzt ginn.

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

All Ännerungen, déi un der Variabel gemaach goufen, während de Skript leeft, gi verluer wann d'Variabel ausserhalb vum Skript exportéiert gëtt. Variabel exportéieren ass ganz wichteg am Shell Scripting.

Mir wëllen eng Variabel hunn, déi nëmme liesen a verfügbar ass ausserhalb vum Skript, mir musse schalt -r a schalt -x zur selwechter Zäit benotzen.

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

Ëmfeld Variablen

D'Variabelen déi tëscht dem Programm an dem Programm gedeelt ginn deen se ausféiert. Ëmfeld Variablen kënnen exportéiert ginn, awer d'Attributer kënnen et net zougewisen ginn.

Déi uewe genannte Theorie praktesch verstoen. Hei hu mir zwee Scripten 0.sh an 1.sh.

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

An déi zweet Schrëft ass.

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

Hei wat lass ass, ass eng Variabel (Numm) als nëmmen gelies deklaréiert an exportéiert an direkt no deem zweete Skript genannt gëtt.

Dat zweet Skript huet just d'Variabel vum éischte Skript gedréckt, deen an der éischter printf Ausso exportéiert gouf. An der zweeter printf Ausso weist se den neie Wäert deen un d'Variabel 'Numm' zougewisen ass.

Keng Suergen, datt d'Variabel nëmmen liesen war, wéi kann et nei zougewisen ginn. Erënnert Dir Iech net datt All Ännerungen, déi un der Variabel gemaach goufen, während de Skript leeft, verluer sinn wann d'Variabel ausserhalb vum Skript exportéiert gëtt.

De Kommando declare erlaabt all d'Schalter hei ënnen zesumme mat hirer Kombinatioun.

  1. -a : Deklaréiert eng Array.
  2. -f : Display Funktioun an Definitioun.
  3. -F : Affichéiert Funktiounsnumm.
  4. -r : Variabel als nëmmen liesen deklaréieren.
  5. -x : Variabel als exportéierbar erklären.
  6. -I : Variabel als Ganzt erklären.

Dat ass alles fir elo. Am ganz nächsten Artikel wäerte mir iwwer Weeër diskutéieren fir Variabelen ze ersetzen mam Kommando 'eval' an d'Variabelen déi schonn am Bash definéiert sinn ier Dir dëst Thema zoumaacht. Hoffen Dir Leit genéisst Är Rees an déif Scripting. Bis dann bleift ofgeschloss a verbonne mat linux-console.net.