Il-varjabbli SHLVL $ huwa użat biex jgħidlek kemm qxur fil-fond int. Jekk int konfuż ma 'dan, ta' min jibda mill-bidu.
X'inhu Shell?
Qoxra tieħu kmandi u tagħtihom lis-sistema operattiva sottostanti biex twettaq. Fuq bosta sistemi Linux il-programm tal-qoxra jissejjaħ BASH (The Bourne Again Shell) iżda hemm oħrajn disponibbli inkluż il-C Shell (tcsh) u l-qoxra KORN (ksh).
Kif Aċċess Il-Shell Linux
Ġeneralment bħala utent int taġixxi mal-programm tal-qoxra permezz tal-użu ta 'programm ta' emulazzjoni terminali bħal XTerm, konsole jew gnome-terminal.
Jekk qed taħdem maniġer tat-twieqi bħal Openbox jew ambjent tad-desktop bħal GNOME jew KDE issib emulator tat-terminal minn menu jew daxx. F'ħafna sistemi l-aċċess dirett CTRL ALT u T tiftaħ tieqa tat-terminal ukoll.
Alternattivament tista 'taqleb għal ieħor tty (teletypewriter) li tipprovdi aċċess dirett għal qoxra tal-linja tal-kmand. Tista 'tagħmel dan billi tagħfas CTRL ALT u F1 jew CTRL ALT u F2 eċċ.
X'inhu Livell Shell
Meta tmexxi l-kmand f'qoxra, titħaddem f'xi ħaġa msejħa l-livell tal-qoxra. Fi ħdan qoxra tista 'tiftaħ qoxra oħra li tagħmilha subshell jew il-qoxra li fetaħha.
Għalhekk il-qoxra ewlenija tkun ikkunsidrata forsi l-qoxra tal-livell 1 u l-qoxra tat-tfal tkun qoxra ta 'livell 2.
Kif Biex Turi l-Livell tal-Qoxra
M'għandu jkun l-ebda sorpriża bbażata fuq it-titlu tal-artiklu li l-mod kif tista 'tgħid liema livell tal-qoxra li qed taħdem fiha huwa billi tuża l-varjabbli SHLVL $.
Biex tara l-livell tal-qoxra li bħalissa qed taħdem fit-tip dan li ġej:
eko $ SHLVL
Pjuttost interessanti jekk tmexxi l-kmand ta 'hawn fuq ġewwa tieqa tat-terminal tista' tkun sorpriż li tara li r-riżultat mibgħut lura huwa 2.
Jekk madankollu inti tmexxi l-istess kmand bl-użu tat-tty allura r-riżultat huwa 1.
Għaliex dan huwa l-każ li tista 'titlob? Ukoll l-ambjent tad-desktop li qed taħdem qed titħaddem flimkien ma 'qoxra. Dak il-qoxra tkun il-livell 1. Kwalunkwe tieqa tat-terminal li tiftaħ minn dak l-ambjent tad-desktop trid tkun tifel tal-qoxra li fetħet l-ambjent tad-desktop u għalhekk il-livell tal-qoxra ma jistax jibda f'numru ieħor għajr 2.
It-tty ma jaħdimx ambjent tad-desktop u għalhekk huwa sempliċement qoxra ta 'livell 1.
Kif Toħloq Subshells
L-eħfef mod biex jiġi ttestjat il-kunċett tal-qxur u s-subshells huwa kif ġej. Iftaħ tieqa tat-terminal u tattira dan li ġej:
eko $ SHLVL
Kif nafu minn tieqa tat-terminal, il-livell minimu tal-qoxra huwa 2.
Issa fit-tieqa tat-terminal, it-tip li ġej:
sh
Il-kmand tat-tmexxija waħdu jagħmel qoxra interattiva li tfisser li qed tuża qoxra fi qoxra jew subshell.
Jekk issa tip dan mill-ġdid:
eko $ SHLVL
Se tara li l-livell tal-qoxra huwa stabbilit għal 3. It-tmexxija tal-kmand sh mill-subshell tiftaħ subshell tal-subshell u għalhekk il-livell tal-qoxra se jkun fil-livell 4.
Għaliex Huwa Importanti Il-Livell tal-Qoxra?
Il-livell tal-qoxra huwa importanti meta wieħed jaħseb dwar l-ambitu tal-varjabbli fi skripts tiegħek.
Nibdew b'xi ħaġa sempliċi:
kelb = maisie
eko $ kelb
Jekk tmexxi l-kmand ta 'hawn fuq qoxra, il-kelma maisie tintwera fuq it-tieqa tat-terminal.
Iftaħ qoxra ġdida billi ttajpja dan li ġej:
sh
Jekk tmexxi dan il-kmand, tara li xejn ma jkun attwalment ritornat:
eko $ kelb
Dan huwa minħabba li l-varjabbli tal-kelb $ huwa disponibbli biss fil-livell tal-qoxra 2. Jekk tagħżel il-ħruġ biex toħroġ mill-subshell u ġġib echo $ dog darb'oħra l-kelma maisie tintwera mill-ġdid.
Ta 'min wieħed jaħseb dwar l-imġiba tal-varjabbli globali fi ħdan qoxra.
Ibda f'tieqa tat-terminal ġdida u tattira dan li ġej:
dog esportazzjoni = maisie
eko $ kelb
Kif tistenna li l-kelma maisie hija murija. Issa tiftaħ subshell u tip echo $ dog darb'oħra. Din id-darba se tara li l-kelma maisie hija murija anke jekk inti f'qoxra tas-sodda.
Ir-raġuni għal dan hija li l-kmand tal-esportazzjoni għamel il-varjabbli tal-kelb $ globali. Il-bidla tal-varjabbli tal-kelb $ fil-qoxra tas-subsib anke jekk tuża l-kmand tal-esportazzjoni ma għandha l-ebda effett fuq il-qoxra prinċipali tagħha.
Nisperaw minn dan tista 'tara li jafu li l-livell tal-qoxra li qed taħdem għandu xi sinifikat meta kiteb skripts.
L-eżempji li tajt huma sempliċiment sempliċi iżda huwa pjuttost komuni għal skrittura tal-qoxra waħda li tissejjaħ skrittura oħra tal-qoxra li mbagħad tissejjaħ skrittura ta 'qoxra oħra kollha li issa qed taħdem f'livelli differenti. Jafu l-livell tal-qoxra jista 'jkun importanti ħafna.