Vgnezdene nadomestne spremenljivke in vnaprej določene spremenljivke BASH v Linuxu - 11. del


Zadnja dva članka o BASH Shell, kjer smo podrobno razpravljali o spremenljivkah, sta bila med našimi bralci zelo cenjena. Kot Tecmint-Team vam zelo želimo zagotoviti najnovejše, posodobljene in ustrezne teme, podrobno zajete. Poleg tega se vedno poskušamo dotakniti glavnih perspektiv ustreznih tem.

Tu je zadnji članek o spremenljivkah Linux, kjer si bomo ogledali zamenjavo spremenljivk in spremenljivke, opredeljene v Shell, preden zapremo to temo.

Bash izvede zamenjavo spremenljivk, preden je ukaz zares izveden. Linux Bash Shell pred izvajanjem ukaza poišče ves znak '$' in ga nadomesti z vrednostjo spremenljivke. Postopek zamenjave spremenljivke Basha se izvede samo enkrat. Kaj če imamo ugnezdene spremenljivke?

Opomba: Pod ugnezdeno spremenljivko mislimo na spremenljivko, ki je deklarirana znotraj spremenljivke. Oglejmo si zgornji scenarij v spodnjem primeru.

Navedite spremenljivko, ki je samo za branje in izvedljivo, kot spodaj.

[email :~$ declare -rx Linux_best_website="linux-console.net"

Preverite vrednost shranjene spremenljivke.

[email :~$ printf "%s" "$Linux_best_website" 

linux-console.net

Zdaj prijavite še eno spremenljivko, ki je spet samo za branje in izvedljivo.

[email :~$ declare -rx Linux_website="Linux_best_website"

Zdaj je stanje, opredelili smo dve spremenljivki.

‘Linux_best_website’, katerega vrednost je\"linux-console.net"
in, 'Spletno mesto_ Linux', katerega vrednost je\"Spletno mesto_najboljše_ Linux"

Kakšen bi bil rezultat, če zaženemo spodnji enovrstni ukaz?

[email :~$ printf "%s" "$Linux_website"

Najprej mora nadomestiti spremenljivko ' $Linux_website ', z vrednostjo\" Linux_best_website ", nato pa\" $Linux_best_website " je spet spremenljivka katerih vrednost je\" linux-console.net ". Torej, končni izhod za zagon spodnjega ukaza mora biti.

[email :~$ printf "%s" "$Linux_website" 

linux-console.net

Toda na žalost ni tako, rezultat, ki ga dobimo, je spletna stran_ Linux_best_ .

Razlog? Ja! Bash vrednost spremenljivke nadomesti le enkrat. Kaj pa zapleteni skripti in programi, kjer moramo spremenljivke pogosto nadomeščati, pa tudi spremenljivko večkrat?

Tu prihaja ukaz ‘ eval ‘, ki v skriptu večkrat izvede dodatno nadomeščanje spremenljivk. Tu je primer, da lahko celota deluje jasno kot steklo.

Navedite spremenljivko x , katere vrednost je 10 .

[email :~/Desktop$ declare x=10

Preverite vrednost spremenljivke x , ki smo jo pravkar določili.

[email :~/Desktop$ echo $yx

x10

Navedite spremenljivko y , katere vrednost je x .

[email :~/Desktop$ declare y=x

Preverite vrednost spremenljivke y , ki smo jo pravkar določili.

[email :~/Desktop$ echo $y 

x

Tukaj je težava z BASH enkratno zamenjavo spremenljivke, ki ne izvede dodatnega kroga zamenjave spremenljivk. Za popravilo uporabljamo ukaz ‘ eval ‘.

[email :~/Desktop$ eval y=$x

Zdaj preverite vrednost spremenljivke ‘ y ’.

[email :~/Desktop$ echo $y 

10

Hura! Težava je bila odpravljena in na tekmi je zmagal ukaz 'eval' :)

Da ne omenjam, ukaz ‘ eval ’ je zelo koristen pri velikih skriptnih programih in je zelo priročno orodje.

Zadnji, a ne najmanj pomemben del tega prispevka so vnaprej določene spremenljivke BASH. Ne! Ne spravljajte se v paniko, ko vidite ta seznam. Preden začnete pisati skripte, se vam ni treba spomniti celotnega seznama, razen nekaj. Kot del učnega procesa predstavljamo vnaprej definirano spremenljivko BASH Seznam.

Obstaja ogromen seznam vnaprej določenih spremenljivk BASH. Poskušali smo sestaviti seznam najpogosteje uporabljenih.

To je vse za zdaj. Spet bom tukaj z drugim zanimivim člankom. Do takrat ostanite z nami in povezani s TecMintom. Ne pozabite nam poslati svojih dragocenih povratnih informacij v spodnjem oddelku za komentarje.