Fehim u Kitba ta' Varjabbli Linux f'Shell Scripting - Parti 10


Il-Linux shell scripting language dejjem kien suġġett jaħraq u dejjem se jkun fil-futur. Il-Lingwa ta' Scripting Shell hija maġika u hija daqshekk faċli li tagħmel programm fil-lingwa ta' skripts bħal fi kwalunkwe Lingwa oħra. Madankollu, jeħtieġ għarfien fil-fond ta’ dak li qed nagħmlu u x’inhu mistenni r-riżultat.

L-artikoli kollha tal-shell scripting li ktibna għall-qarrejja tagħna huma apprezzati ħafna inkluż l-aħħar wieħed \An Insight of Linux Variables. Qed nestendew l-aħħar artiklu għal Livell ġdid.

Attributi Varjabbli

Kull Varjabbli fl-Ambjent Linux għandha ċerti għażliet, u dawk jissejħu attributi. Dawn l-għażliet jew attributi jistgħu jinxtegħlu Ixgħel u Jitfi, meta meħtieġ skont is-sitwazzjoni bl-użu ta' kmand \tiddikjara.

Eżempju ta' attribut varjabbli qed juża swiċċ say '-i' li se jixgħel l-attribut integer għall-varjabbli korrispondenti. Anke jekk jiġi mgħoddi valur mhux numeriku biex taqleb '-i' mhux se jitfa' messaġġ ta' żball u joħroġ '0' bħala interpretazzjoni ta' numru sħiħ. Hawnhekk isir aktar ċar mill-eżempju hawn taħt.

Iddikjara Integer varjabbli, kont = 121

[email :~$ declare -i bill=121

Printf il-valur tal-kont varjabbli.

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

121

Ħalli l-valur varjabbli jkun string. Il-kont varjabbli huwa diġà ddikjarat, m'hemmx għalfejn tiddikjarah it-tieni darba. Biss ibdel il-valur tal-varjabbli bħala.

[email :~$ bill=tecmint

Issa, għal darb'oħra printf il-valur tal-kont varjabbli.

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

0

Avviż ‘0’ fil-post tal-messaġġ ta’ żball.

[email :~$ declare -p bill 

declare -i bill="121"

Hawnhekk, swiċċ -p (jiġifieri għall-istampar) jiġi biex isalva.

Sabiex naqilbu Off l-attributi ta’ varjabbli dak li neħtieġu kollha huwa li npoġġu sinjal + (plus) eżatt qabel is-swiċċ. Hawnhekk huwa aktar ċar mill-eżempju hawn taħt.

Aqleb Itfi l-attribut integer għall-varjabbli ta' hawn fuq.

[email :~$ declare +i bill

Iċċekkja l-valur tal-varjabbli.

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

bash: printf: bill: invalid number
0

Issa ipprintja l-valur tal-varjabbli billi tuża swiċċ string.

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

tecmint

Hawnhekk fl-eżempju ta 'hawn fuq, bash ma setax jiġġudika valur mhux numeriku bħala żball, madankollu printf qed jinterpreta, x'jista' jkun numru u x'ma jistax ikun.

Varjabbli li jinqraw biss

Forsi smajt Memorja Aqra Biss (ROM), imma x'inhu Varjabbli Aqra biss? Għandu xi xebh ma' ROM?

Tajjeb Varjabbli Aqra biss bħall-Memorja Aqra biss hija xi ħaġa li l-valur tagħha ma jistax jinbidel ladarba tiġi assenjata. Għalhekk huwa msejjaħ Read-only. Ma tistax tikteb, teditja jew timmodifika valur ġdid għal dik il-varjabbli. Hawnhekk hawn illustrazzjoni bl-użu ta 'eżempju.

Aqra biss (-r) isem varjabbli, li l-valur tiegħu huwa \linux-console.net.

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

Printf il-valur tal-varjabbli ddikjarat hawn fuq.

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

linux-console.net

Ipprova ibiddel il-valur tal-varjabbli.

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

bash: declare: name: readonly variable

Kif diskuss hawn fuq, l-attributi ta’ Varjabbli li jinqara biss jistgħu jinbidlu bl-użu tas-sinjal ‘+’.

Esportazzjoni ta' Varjabbli fil-Linux

Il-varjabbli tal-qoxra kollha ddikjarati fi skript tal-qoxra huma disponibbli sakemm l-iskript ikun qed jaħdem. Barra mill-iskrittura l-varjabbli mill-iskrittura ma teżistix. Il-proċess li jagħmlu disponibbli varjabbli barra mill-iskrittura jissejjaħ varjabbli ta 'esportazzjoni.

Varjabbli jista' jiġi esportat barra mill-qoxra bl-użu ta' switch tiddikjara -x (esportazzjoni), li jirrikonoxxi l-qoxra dak li ridt tesporta. A swiċċ ta 'esportazzjoni jiddikjara jista' jintuża bħala.

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

Il-bidliet kollha li saru lill-varjabbli waqt li l-iskrittura tkun qed taħdem, jintilfu meta l-varjabbli tiġi esportata barra mill-iskrittura. L-esportazzjoni tal-varjabbli hija importanti ħafna fil-shell scripting.

Irridu li jkollna varjabbli li għandha tinqara biss u tkun disponibbli barra mill-iskript, għandna bżonn nużaw swiċċ -r u swiċċ -x fl-istess ħin.

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

Varjabbli Ambjentali

Il-varjabbli li huma maqsuma bejn il-programm u l-programm li jesegwixxihom. Il-varjabbli ambjentali jistgħu jiġu esportati iżda l-attributi ma jistgħux jiġu assenjati lilha.

Nifhmu t-teorija ta 'hawn fuq prattikament. Hawnhekk għandna żewġ skripts 0.sh u 1.sh.

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

U t-tieni kitba hija.

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

Hawnhekk dak li qed jiġri, huwa varjabbli (isem) huwa ddikjarat bħala jinqara biss u esportat u immedjatament wara li tissejjaħ it-tieni script.

It-tieni skript biss stampat il-varjabbli mill-ewwel skript li ġie esportat fl-ewwel dikjarazzjoni printf. Fit-tieni dikjarazzjoni printf turi l-valur il-ġdid assenjat lill-varjabbli 'isem'.

M'hemmx għalfejn tinkwieta, li l-varjabbli kien jinqara biss, kif jista 'jiġi assenjat mill-ġdid. Ma tiftakarx li \Il-bidliet kollha li saru lill-varjabbli waqt li l-iskrittura tkun qed taħdem, jintilfu meta l-varjabbli tiġi esportata barra mill-iskrittura.

Il-kmand tiddikjara jippermetti l-iswiċċijiet kollha hawn taħt flimkien mal-kombinazzjoni tagħhom.

  1. -a : Jiddikjara firxa.
  2. -f : Funzjoni tal-Wiri u Definizzjoni.
  3. -F : Isem tal-Funzjoni tal-Wiri.
  4. -r : Iddikjara varjabbli bħala ta' qari biss.
  5. -x : Iddikjara Varjabbli bħala Esportabbli.
  6. -I : Iddikjara varjabbli bħala Integer.

Dak kollu għalissa. Fl-artiklu li jmiss se nkunu qed niddiskutu modi kif nissostitwixxu l-varjabbli bl-użu tal-kmand 'eval' u l-varjabbli diġà definiti f'bash qabel ma nagħlqu dan is-suġġett. Nittama li intom qed tgawdi l-vjaġġ tiegħek għal skripts fil-fond. Sa dakinhar ibqa' sintonizzat u mqabbad ma' linux-console.net.