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.
- -a : Jiddikjara firxa.
- -f : Funzjoni tal-Wiri u Definizzjoni.
- -F : Isem tal-Funzjoni tal-Wiri.
- -r : Iddikjara varjabbli bħala ta' qari biss.
- -x : Iddikjara Varjabbli bħala Esportabbli.
- -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.