Hvernig og hvers vegna þú myndir nota $ SHLVL Variable

The $ SHLVL breytu er notuð til að segja þér hversu mörg skeljar djúpt þú ert. Ef þú ert ruglaður af þessu er þess virði að byrja frá upphafi.

Hvað er skel?

Skel tekur skipanir og gefur þeim undirliggjandi stýrikerfi til að framkvæma. Í flestum Linux kerfum er skelið forritið kallað BASH (The Bourne Again Shell) en það eru aðrir aðgengilegar, þ.mt C Shell (tcsh) og KORN skel (ksh).

Hvernig á að fá aðgang að Linux Shell

Almennt sem notandi sem þú hefur samskipti við skel forritið með því að nota Terminal Emulation forrit eins og XTerm, konsole eða gnome-terminal.

Ef þú ert að keyra Windows stjórnanda eins og Opnahólf eða skrifborðsaðstæður eins og GNOME eða KDE finnur þú Terminal emulator, annaðhvort úr valmynd eða strik. Á mörgum kerfum mun flýtileiðin CTRL ALT og T opna stöðuglugga.

Einnig er hægt að skipta yfir í annan tty (teletypewriter) sem veitir beinan aðgang að skipanalínu skel. Þú getur gert þetta með því að ýta á CTRL ALT og F1 eða CTRL ALT og F2 o.fl.

Hvað er skel stig

Þegar þú keyrir stjórn í skelni keyrir það á eitthvað sem kallast skelastigið. Innan skel getur þú opnað annan skel sem gerir það að skothylki eða skelnum sem opnaði það.

Því mun foreldri skelinn talist kannski stig 1 skel og barn skel myndi vera stig 2 skel.

Hvernig á að sýna skelastigið

Það ætti ekki að koma á óvart út frá titli greinarinnar að leiðin sem þú getur sagt hvaða skelastig þú ert að keyra inn er með því að nota $ SHLVL breytu.

Til að sjá skelastigið sem þú ert að keyra í gerððu eftirfarandi:

echo $ SHLVL

Fremur áhugavert ef þú rekur ofangreind stjórn innan flugstöðvarinnar gætirðu verið undrandi að sjá að niðurstöðin sem skilað er er 2.

Ef þú stjórnar sömu stjórn með tty þá er niðurstaðan 1.

Af hverju er þetta málið að þú gætir spurt? Jæja er skrifborðið sem þú ert að keyra hlaupið ofan á skel. Þessi skel myndi vera stigi 1. Allir gluggar sem þú opnar innan þess skrifborðs umhverfi verða að vera barn skeljarinnar sem opnaði skrifborðið og því getur skelastigið ekki byrjað á neinum öðrum númerum en 2.

The tty er ekki að keyra skrifborðs umhverfi og er því einfaldlega stig 1 skel.

Hvernig Til Skapa Subshells

Auðveldasta leiðin til að prófa hugtakið skeljar og subshells er sem hér segir. Opnaðu flugstöðvar glugga og sláðu inn eftirfarandi:

echo $ SHLVL

Eins og við vitum frá flugstöðinni er lágmarksskelastigið 2.

Nú í flugstöðinni gluggi skrifaðu eftirfarandi:

sh

The skipunin á eigin spýtur keyrir gagnvirkt skel sem þýðir að þú ert að nota skel í skel eða skothylki.

Ef þú skrifar þetta núna aftur:

echo $ SHLVL

Þú munt sjá að skelastigið er stillt á 3. Running the sh skipunina frá skothylki mun opna skothylki skothylkisins og svo skal skelastigið vera á stigi 4.

Af hverju er skelastigið mikilvægt?

Skelastigið er mikilvægt þegar þú hugsar um umfang breytinga innan handritanna.

Við skulum byrja með eitthvað einfalt:

hundur = maisie
echo $ hundur

Ef þú rekur ofangreind skipun í skel mun orðið Maisie birtast í flugstöðinni.

Opnaðu nýja skel með því að slá inn eftirfarandi:

sh

Ef þú rekur þessa stjórn munt þú sjá að ekkert er í raun skilað:

echo $ hundur

Það er vegna þess að $ hundabreytan er aðeins í boði á skelastigi 2. Ef þú slærð inn hætta til að hætta við skothríðina og hlaupa echo $ hundinn aftur verður orðið maisie birt aftur.

Það er líka þess virði að hugsa um hegðun alþjóðlegra breytinga innan skel.

Byrjaðu í nýjum flugstöðinni og sláðu inn eftirfarandi:

útflutningur hundur = maisie
echo $ hundur

Eins og þú vildi búast við er orðið Maisie birt. Opnaðu núna skothylki og veldu echo $ hundinn aftur. Í þetta sinn munt þú sjá að orðið Maisie er birt, jafnvel þótt þú sért í undirskel.

Ástæðan fyrir þessu er sú að útflutningsskipan gerði $ hundabreytan á heimsvísu. Breyting á hundahlutfallinu innan undirhússins, jafnvel þótt þú notir útflutningsskipunina, hefur engin áhrif á foreldrisskeljar.

Vonandi getur þú séð það að vita að skelastigið sem þú ert að vinna í hefur einhverja þýðingu þegar þú skrifar forskriftir.

Dæmiin sem ég hef gefið eru mjög einföldu en það er nokkuð algengt að einn skeltaforrit sé að hringja í annað skeljaskripta sem kallar á annað skothylki sem allir eru að keyra á mismunandi stigum. Vitandi skelastigið getur verið mjög mikilvægt.