Pesastatud muutujate asendamine ja eelnevalt määratletud BASH-muutujad Linuxis - 11. osa


Kaks viimast artiklit BASH Shelli kohta, kus me muutujaid üksikasjalikult arutlesime, olid meie lugejate seas kõrgelt hinnatud. Meie kui Tecmint-Team soovime teile pakkuda kõige uuemaid, ajakohasemaid ja asjakohasemaid üksikasju. Pealegi püüame alati puudutada vastavate teemade peamisi vaatenurki.

Siin on viimane artikkel Linuxi muutujate kohta, kus enne selle teema sulgemist näeme Shellis määratletud muutujate asendusi ja muutujaid.

Bash täidab muutuva asendamise enne käsu tõelist täitmist. Linux Bash Shell otsib enne käsu käivitamist kogu märgi ‘$’ ja asendab selle muutuja väärtusega. Bash Variable asendamise protsess viiakse läbi ainult üks kord. Mis siis, kui meil on pesastatud muutujad?

Märkus. Pesastatud muutuja all mõeldakse muutuja deklareeritud muutujat. Vaatame ülaltoodud stsenaariumi allpool toodud näites.

Deklareerige muutuja, mis on kirjutuskaitstud ja täidetav nagu allpool.

[email protected]:~$ declare -rx Linux_best_website="www.tecmint.com"

Kontrollige salvestatud muutuja väärtust.

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

www.tecmint.com

Nüüd deklareerige teine u200bu200bmuutuja, mis on jälle kirjutuskaitstud ja täidetav.

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

Nüüd on olukord määratletud kaks muutujat.

‘Linux_best_website’, mille väärtus on\"www.tecmint.com"
ja 'Linux_website', mille väärtus on\"Linux_best_website"

Mis oleks tulemus, kui käivitaksime allpool ühe reaga käsu?

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

Kõigepealt peaks see asendama muutuja ' $Linux_website ' väärtusega\" Linux_best_website " ja seejärel\" $Linux_best_website " on jälle muutuja, mille väärtus on\" www.tecmint.com ". Seega peaks alloleva käsu käivitamise lõplik väljund olema.

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

www.tecmint.com

Kuid kahjuks pole see olukord, väljund, mille saame, on Linux_best_website .

Põhjus? Jep! Bash asendab muutuja väärtuse ainult üks kord. Kuidas on lood keerukate skriptide ja programmidega, kus peame muutujaid sageli asendama ja muutujaid mitu korda asendama?

Siit tuleb käsk ‘ eval ’, mis täidab muutuvas asenduses lisatööd skriptis mitu korda. Siin on näide, kuidas muuta kogu töö sama selgeks kui klaas.

Deklareerige muutuja x , mille väärtus on 10 .

[email protected]:~/Desktop$ declare x=10

Kontrollige muutuja x väärtust, me just määratlesime.

[email protected]:~/Desktop$ echo $yx

x10

Deklareerige muutuja y , mille väärtus on x .

[email protected]:~/Desktop$ declare y=x

Kontrollige muutuja y väärtust, me just määratlesime.

[email protected]:~/Desktop$ echo $y 

x

Siin on probleem BASH ühekordne muutuja asendamine, mis ei tee muutuja asendamise lisavooru. Selle parandamiseks kasutame käsku eval .

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

Nüüd kontrollige muutuja ‘ y ’ väärtust.

[email protected]:~/Desktop$ echo $y 

10

Hurraa! Probleem oli lahendatud ja võistlus võitis võistluse „eval“ :)

Rääkimata sellest, on käsk ‘ eval ’ suurtes skriptiprogrammides väga kasulik ja väga mugav tööriist.

Selle postituse viimane, kuid mitte vähem oluline osa on BASH-i eelnevalt määratletud muutujad. Ei! Selle loendi nägemisel ärge paanitsege. Enne skriptide kirjutamise alustamist ei pea te kunagi tervet loendit meelde jätma, välja arvatud mõned. Osana õppeprotsessist tutvustame BASH-i eelnevalt määratletud muutujat List.

Eeltoodud BASH muutujaid on tohutult palju. Oleme püüdnud koostada nimekirja kõige sagedamini kasutatavatest.

Praeguseks kõik. Olen siin veel ühe huvitava artikliga. Siiani olge TecMintiga kursis ja ühenduses. Ärge unustage meile allpool kommentaaride jaotises oma väärtuslikku tagasisidet anda.