Jinsi Na Kwa nini Unatumia $ SHLVL Tofauti

Tofauti ya $ SHLVL hutumiwa kukuambia ni ngapi shells ulivyozidi. Ikiwa umechanganyikiwa na hili ni muhimu kuanzia mwanzoni.

Shell ni nini?

Shell inachukua amri na inawapa mfumo wa uendeshaji wa msingi kufanya. Katika mifumo ya Linux nyingi mpango wa shell huitwa BASH (Bourne Again Shell) lakini kuna wengine inapatikana ikiwa ni pamoja na C Shell (tcsh) na shell KORN (ksh).

Jinsi ya Kupata Shell ya Linux

Kwa kawaida kama mtumiaji unayashirikiana na mpango wa shell kupitia matumizi ya programu ya udhibiti wa terminal kama vile XTerm, konsole au gnome-terminal.

Ikiwa unatumia meneja wa madirisha kama Openbox au mazingira ya desktop kama GNOME au KDE utapata emulator ya terminal ama kutoka kwenye orodha au dash. Kwa mifumo mingi njia ya mkato CTRL ALT na T itafungua dirisha la terminal pia.

Vinginevyo unaweza kubadilisha kwenye tty nyingine (teletypewriter) ambayo hutoa upatikanaji wa moja kwa moja kwenye shell ya amri. Unaweza kufanya hivyo kwa kushinikiza CTRL ALT na F1 au CTRL ALT na F2 nk.

Kiwango cha Shell ni nini

Unapoendesha amri katika shell huendesha kitu kinachoitwa ngazi ya shell. Ndani ya shell unaweza kufungua shell nyingine ambayo inafanya subshell au shell ambayo kufunguliwa yake.

Kwa hivyo shell ya mzazi ingachukuliwa kama labda kiwango cha shell 1 na shell ya mtoto itakuwa shell 2 ngazi.

Jinsi ya Kuonyesha Ngazi ya Shell

Inapaswa kuja kama sio mshangao kulingana na kichwa cha makala hiyo kwa njia ambayo unaweza kueleza ni kiwango gani cha shell unachotumia ni kutumia variable ya $ SHLVL.

Ili kuona kiwango cha shell ambacho kwa sasa unatumia aina hii yafuatayo:

Echo $ SHLVL

Badala ya kuvutia ikiwa unatumia amri ya juu ndani ya dirisha la terminal unaweza kushangaa kuona kwamba matokeo yanayorudi ni 2.

Ikiwa wewe unatumia amri sawa kutumia tty basi matokeo ni 1.

Kwa nini hii ndiyo kesi unayoweza kuuliza? Vizuri mazingira ya desktop unayoendesha yanatumika juu ya shell. Hifadhi hiyo itakuwa kiwango 1. Dirisha lolote la kufungua unalofungua kutoka ndani ya eneo hilo la desktop linapaswa kuwa mtoto wa shell ambayo ilifungua mazingira ya desktop na kwa hiyo ngazi ya shell haiwezi kuanza kwa idadi yoyote isipokuwa 2.

Tty sio kuendesha mazingira ya desktop na kwa hiyo ni tu shell 1 ngazi.

Jinsi ya Kujenga Subshells

Njia rahisi zaidi ya kupima dhana ya shells na subshells ni kama ifuatavyo. Fungua dirisha la terminal na funga zifuatazo:

Echo $ SHLVL

Kama sisi kujua kutoka dirisha terminal kiwango cha chini shell ni 2.

Sasa ndani ya aina ya dirisha la terminal zifuatazo:

sh

Amri ya sh inawezesha shell iliyoingiliana ambayo ina maana unatumia shell ndani ya shell au subshell.

Ikiwa sasa aina hii tena:

Echo $ SHLVL

Utaona kuwa kiwango cha shell kinawekwa hadi 3. Kuendesha amri ya sh kutoka ndani ya subshell itafungua somo la chini na hivyo ngazi ya shell itakuwa ngazi ya 4.

Kwa nini Kiwango cha Shell Ni Muhimu?

Ngazi ya shell ni muhimu wakati wa kufikiri juu ya wigo wa vigezo ndani ya maandiko yako.

Hebu tuanze na kitu rahisi:

mbwa = maisie
Echo mbwa $

Ikiwa unatumia amri ya hapo juu ndani ya shell neno maisie itaonyeshwa kwenye dirisha la terminal.

Fungua shell mpya kwa kuandika zifuatazo:

sh

Ikiwa unatumia amri hii utaona kwamba hakuna kitu kilichorejeshwa:

Echo mbwa $

Hiyo ni kwa sababu kutofautiana kwa mbwa ya $ inapatikana tu kwenye kiwango cha shell 2. Ikiwa unapiga aina ya kuondoka ili uondoke chini na kuendesha echo $ mbwa tena neno maisie litaonyeshwa tena.

Pia ni muhimu kufikiri juu ya tabia ya vigezo vya kimataifa ndani ya shell.

Anzisha kwenye dirisha jipya la jipya na uchapishe zifuatazo:

nje ya mbwa = maisie
Echo mbwa $

Kama ungeweza kutarajia neno maisie linaonyeshwa. Sasa fungua kichwa cha chini na chapa aina ya $ mbwa tena. Wakati huu utaona kwamba neno la maisie linaonyeshwa ingawa wewe uko katika somo.

Sababu ya hii ni kwamba amri ya nje ya nje imetoa jumla ya mbwa $ $. Kubadilisha mbwa $ $ ndani ya subshell hata kama unatumia amri ya kuuza nje haipatikani kwenye vifuko vya mzazi.

Tumaini kutoka hapa unaweza kuona kuwa kujua kiwango cha shell unayofanya kazi kuna umuhimu fulani wakati wa kuandika maandiko.

Mifano ambazo nimezipa ni rahisi sana lakini ni kawaida kwa script moja ya script kuita script nyingine shell ambayo kwa upande wito script nyingine script wote sasa anaendesha katika ngazi mbalimbali. Kujua ngazi ya shell inaweza kuwa muhimu sana.