Nested Variable Substitution ug Predefined BASH Variables sa Linux - Bahin 11


Ang katapusan nga duha ka artikulo sa BASH Shell, diin among gihisgutan ang mga variable sa detalye gipabilhan pag-ayo sa among mga magbabasa. Kami isip Tecmint-Team matinguhaon kaayo sa paghatag kanimo sa Pinakabag-o, Up-to-date ug may kalabutan nga mga topiko nga nasakup sa mga detalye. Dugang pa, kanunay kaming naningkamot sa paghikap sa dagkong mga panglantaw sa katugbang nga mga hilisgutan.

Ania ang katapusang artikulo sa Linux Variables diin atong makita ang mga variable substitution ug variables nga gihubit sa Shell sa dili pa isira kini nga hilisgutan.

Ang Bash naghimo sa variable substitution sa wala pa ipatuman ang command. Gipangita sa Linux Bash Shell ang tanan nga timaan nga '$' sa wala pa ipatuman ang mando ug pulihan kini sa kantidad sa variable. Ang proseso sa Bash Variable substitution gihimo kausa ra. Unsa kaha kung kita adunay mga nested variable?

Mubo nga sulat: Pinaagi sa nested variable among gipasabot, variable nga gideklarar sulod sa variable. Atong tan-awon ang senaryo sa ibabaw sa panig-ingnan sa ubos.

Ideklara ang usa ka variable nga Read-Only ug Executable sama sa ubos.

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

Susiha ang bili sa variable nga gitipigan.

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

linux-console.net

Karon ipahayag ang laing variable nga mao ang Read-Only ug Executable.

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

Karon ang kahimtang mao, gihubit namon ang duha nga mga variable.

'Linux_best_website', ang bili niini mao ang \linux-console.net
ug, 'Linux_website', ang bili niini mao ang \Linux_best_website

Unsa ang mahimong resulta, kung atong ipadagan ang ubos nga usa ka linya nga sugo?

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

Kinahanglan una niini ilisan ang variable nga '$Linux_website', nga adunay bili nga \Linux_best_website” ug unya ang \$Linux_best_website” kay usa na usab ka variable ang ang bili niini mao ang \linux-console.net. Busa ang kataposang output sa pagpadagan sa ubos nga sugo kinahanglan mao.

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

linux-console.net

Apan ikasubo, dili kini ang sitwasyon, ang output nga atong makuha mao ang Linux_best_website.

Rason? Oo nga! Bash ilisan ang bili sa variable kausa lang. Unsa man ang bahin sa komplikado nga mga script ug mga programa diin kinahanglan naton ilisan kanunay ang mga variable ingon man kinahanglan nga ilisan ang variable labaw sa kausa?

Ania ang sugo nga 'eval' nga naghimo og dugang nga trabaho sa variable substitution labaw sa kausa sa usa ka script. Ania ang usa ka pananglitan aron mahimo ang tibuuk nga pagtrabaho nga tin-aw sama sa baso.

Ipahayag ang usa ka variable x, ang bili niini mao ang 10.

[email :~/Desktop$ declare x=10

Susiha ang bili sa variable x, atong gihubit.

[email :~/Desktop$ echo $yx

x10

Ipahayag ang usa ka variable y, ang bili niini mao ang x.

[email :~/Desktop$ declare y=x

Susiha ang bili sa variable y, bag-o lang namo gihubit.

[email :~/Desktop$ echo $y 

x

Ania ang problema sa BASH usa ka higayon nga variable substitution, nga wala maghimo usa ka dugang nga hugna sa variable substitution. Gigamit namo ang 'eval' nga sugo aron ayohon kini.

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

Karon susiha ang Value sa variable 'y'.

[email :~/Desktop$ echo $y 

10

Hurrah! Naayo na ang isyu ug ang 'eval' command nakadaog sa lumba :)

Wala pay labot, ang 'eval' nga sugo makatabang kaayo sa dagkong mga programa sa script ug usa ka magamit nga himan.

Ang katapusan apan dili ang pinakagamay nga bahin niini nga post mao ang BASH predefined variables. Dili! Ayaw kalisang sa pagtan-aw niini nga lista. Dili nimo kinahanglan nga hinumdoman ang tibuuk nga lista sa dili ka magsugod sa pagsulat sa mga script gawas sa pipila. Isip usa ka bahin sa proseso sa pagkat-on, among gipresentar ang BASH predefined variable List.

Adunay usa ka dako nga lista sa Predefined BASH Variable. Gisulayan namon nga maghimo usa ka lista sa labing kanunay nga gigamit.

Kana lang sa pagkakaron. Ania ako pag-usab uban sa laing makapaikag nga artikulo. Hangtud unya magpabilin nga tuned ug konektado sa TecMint. Ayaw kalimti ang paghatag kanamo sa imong bililhon nga feedback sa seksyon sa komento sa ubos.