Ligzdoti mainīgo aizstājēji un iepriekš definēti BASH mainīgie Linux - 11. daļa


Pēdējie divi raksti par BASH Shell, kur mēs detalizēti apspriedām mainīgos, mūsu lasītāju vidū tika augstu novērtēti. Mēs kā Tecmint-Team ļoti vēlamies sniegt jums jaunākās, atjauninātās un atbilstošās tēmas, kas ir detalizēti aplūkotas. Turklāt mēs vienmēr cenšamies pieskarties galvenajām attiecīgo tēmu perspektīvām.

Šis ir pēdējais raksts par Linux mainīgajiem, kurā mēs redzēsim mainīgos, kas ir aizstāti, un mainīgos, kas definēti Shell, pirms aizverat šo tēmu.

Bash veic mainīgo aizstāšanu, pirms komanda patiešām tiek izpildīta. Linux Bash Shell pirms komandas izpildes meklē visu zīmi ‘$’ un aizstāj to ar mainīgā vērtību. Bash Variable aizstāšanas process tiek veikts tikai vienu reizi. Ko darīt, ja mums ir ligzdoti mainīgie?

Piezīme: Ar ligzdotu mainīgo mēs domājam mainīgo, kas deklarēts mainīgā iekšpusē. Ļaujiet skatīt iepriekš minēto scenāriju zemāk esošajā piemērā.

Paziņojiet mainīgo, kas ir tikai lasāms un izpildāms, kā norādīts zemāk.

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

Pārbaudiet saglabātā mainīgā vērtību.

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

linux-console.net

Tagad deklarējiet citu mainīgo, kas atkal ir tikai lasāms un izpildāms.

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

Tagad situācija ir tāda, ka mēs esam definējuši divus mainīgos.

‘Linux_best_website’, kura vērtība ir “linux-console.net”
un “Linux_website”, kuras vērtība ir “Linux_best_website”

Kāds būtu rezultāts, ja palaistu zemāk esošo vienas rindas komandu?

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

Vispirms tam jāmaina mainīgais “ $Linux_website ” ar vērtību “ Linux_best_website ”, un pēc tam “ $Linux_best_website ” atkal ir mainīgais, kura vērtība ir kas ir “ linux-console.net ”. Tātad zemāk esošās komandas palaišanas galīgajam iznākumam vajadzētu būt.

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

linux-console.net

Bet diemžēl tā nav situācija, mēs iegūstam rezultātu Linux_best_website .

Iemesls? Jā! Bash mainīgā vērtību aizstāj tikai vienu reizi. Kā ir ar sarežģītiem skriptiem un programmām, kurās mums bieži jāmaina mainīgie, kā arī jāmaina mainīgais vairāk nekā vienu reizi?

Šeit nāk komanda ‘ eval ’, kas vairāk nekā vienu reizi skriptā veic papildu darbu ar mainīgo aizstāšanu. Šeit ir piemērs, lai padarītu visu darbu tikpat skaidru kā stikls.

Paziņojiet mainīgo x , kura vērtība ir 10 .

[email :~/Desktop$ declare x=10

Pārbaudiet mainīgā x vērtību, kuru mēs tikko definējām.

[email :~/Desktop$ echo $yx

x10

Paziņojiet mainīgo y , kura vērtība ir x .

[email :~/Desktop$ declare y=x

Pārbaudiet mainīgā y vērtību, kuru mēs tikko definējām.

[email :~/Desktop$ echo $y 

x

Šeit ir problēma ar BASH vienreizēju mainīgo aizstāšanu, kas neveic papildu mainīgo aizstāšanas kārtu. Lai to novērstu, mēs izmantojam komandu ‘ eval ’.

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

Tagad pārbaudiet mainīgā ‘ y ’ vērtību.

[email :~/Desktop$ echo $y 

10

Urā! Jautājums tika izlabots, un ‘eval’ komanda uzvarēja sacensībās :)

Nemaz nerunājot, ‘ eval ’ komanda ir ļoti noderīga lielās skriptu programmās un ir ļoti ērts rīks.

Šīs ziņas pēdējā, bet ne mazāk svarīgā daļa ir BASH iepriekš definēti mainīgie. Nē! Neuztraucieties, ieraugot šo sarakstu. Jums nekad nav jāatceras viss saraksts, pirms sākat rakstīt skriptus, izņemot dažus. Mācību procesa ietvaros mēs prezentējam BASH iepriekš definēto mainīgo sarakstu.

Ir milzīgs iepriekš definētu BASH mainīgo saraksts. Mēs esam mēģinājuši izveidot visbiežāk izmantoto sarakstu.

Tas pagaidām ir viss. Es atkal būšu šeit ar vēl vienu interesantu rakstu. Līdz tam sekojiet līdzi jaunumiem un savienojumam ar TecMint. Neaizmirstiet sniegt mums vērtīgas atsauksmes komentāru sadaļā zemāk.