Sut A Fyddech Chi'n Defnyddio Y $ SHLVL Amrywiol

Defnyddir y newid $ SHLVL i ddweud wrthych faint o gregyn sy'n ddwfn ydych chi. Os ydych chi'n ddryslyd gan hyn, mae'n werth cychwyn ar y dechrau.

Beth Sy'n Dwyn?

Mae gragen yn cymryd gorchmynion ac yn rhoi iddynt y system weithredu sylfaenol i berfformio. Ar y rhan fwyaf o systemau Linux, gelwir y rhaglen gragen BASH (The Bourne Again Shell) ond mae eraill ar gael, gan gynnwys C Shell (tcsh) a'r gragen KORN (ksh).

Sut i Gyrchu Linux Shell

Yn gyffredinol, fel defnyddiwr rydych chi'n rhyngweithio â'r rhaglen gragen trwy ddefnyddio rhaglen efelychu terfynell megis XTerm, konsole neu gnome-terminal.

Os ydych chi'n rhedeg rheolwr ffenestri fel Openbox neu amgylchedd bwrdd gwaith megis GNOME neu KDE, fe welwch efelychydd terfynol naill ai o ddewislen neu ddash. Ar lawer o systemau, bydd y CTRL ALT a T shortcut yn agor ffenestr derfynell hefyd.

Fel arall, gallwch chi newid i tty arall (teletypewriter) sy'n darparu mynediad uniongyrchol i gregen llinell orchymyn. Gallwch chi wneud hyn trwy wasgu CTRL ALT a F1 neu CTRL ALT a F2 ac ati.

Beth yw Lefel Shell

Pan fyddwch chi'n rhedeg gorchymyn mewn cragen mae'n rhedeg ar rywbeth o'r enw lefel y cragen. O fewn cragen, gallwch agor cragen arall sy'n ei gwneud yn isgell neu i'r gragen sy'n ei agor.

Felly, byddai'r rhiant cragen yn cael ei ystyried efallai mai'r gragen lefel 1 a byddai'r gragen plentyn yn gragen lefel 2.

Sut i Arddangos Lefel Shell

Ni ddylai ddod yn syndod yn seiliedig ar deitl yr erthygl y gall y ffordd y gallwch chi ddweud pa lefel gragen yr ydych yn rhedeg ynddi yw defnyddio'r newidyn $ SHLVL.

I weld y lefel gragen yr ydych yn ei rhedeg ar hyn o bryd yn y math canlynol:

adleisio $ SHLVL

Yn hytrach diddorol os ydych chi'n rhedeg y gorchymyn uchod o fewn ffenestr derfynell, efallai y byddwch chi'n synnu gweld y canlyniad a ddychwelwyd yn 2.

Fodd bynnag, os ydych chi'n rhedeg yr un gorchymyn gan ddefnyddio'r tty, yna mae'r canlyniad yn 1.

Pam mai dyma'r achos y gallech ei ofyn? Wel mae'r amgylchedd bwrdd gwaith rydych chi'n ei redeg yn cael ei redeg ar ben cregyn. Byddai'r gragen hwnnw'n lefel 1. Rhaid i unrhyw ffenestr derfynell y byddwch yn ei agor o fewn yr amgylchedd bwrdd gwaith hwnnw fod yn blentyn i'r gragen a agorodd yr amgylchedd penbwrdd ac felly ni all y lefel gragen ddechrau ar unrhyw rif heblaw am 2.

Nid yw'r tty yn rhedeg amgylchedd bwrdd gwaith ac felly mae'n syml cragen lefel 1.

Sut i Creu Cynghreiriau

Y ffordd hawsaf i brofi'r cysyniad o gregyn a chysgodion yw fel a ganlyn. Agorwch ffenestr derfynell a theipiwch y canlynol:

adleisio $ SHLVL

Fel y gwyddom o ffenestr derfynell, y lefel gragen isaf yw 2.

Nawr o fewn y ffenestr derfynell mathwch y canlynol:

sh

Mae'r gorchymyn sh ar ei ben ei hun yn rhedeg cragen rhyngweithiol sy'n golygu eich bod yn defnyddio cragen o fewn cregyn neu isgell.

Os ydych yn awr yn teipio hyn eto:

adleisio $ SHLVL

Byddwch yn gweld bod y lefel gragen wedi'i osod i 3. Bydd rhedeg y gorchymyn sh o o fewn y subshell yn agor is-gell o'r isgell ac felly bydd y lefel gragen ar lefel 4.

Pam Ydy'r Lefel Shell yn Bwysig?

Mae'r lefel gragen yn bwysig wrth ystyried cwmpas y newidynnau yn eich sgriptiau.

Gadewch i ni ddechrau gyda rhywbeth syml:

cwn = maisie
adleisio $ ci

Os ydych chi'n rhedeg y gorchymyn uchod mewn cregyn, bydd y gair maisie yn cael ei arddangos i'r ffenestr derfynell.

Agor gragen newydd trwy deipio'r canlynol:

sh

Os ydych chi'n rhedeg y gorchymyn hwn, fe welwch na ddychwelir dim mewn gwirionedd:

adleisio $ ci

Y rheswm am hynny yw bod yr amrywiad $ c yn unig ar gael ar lefel cregyn 2. Os ydych chi'n teipio ymadael i adael y subshell a rhedeg echo $ c eto bydd y gair maisie yn cael ei arddangos eto.

Mae'n werth meddwl hefyd am ymddygiad newidynnau byd-eang o fewn cregyn.

Dechreuwch mewn ffenestr derfynell newydd a deipiwch y canlynol:

cwn allforio = maisie
adleisio $ ci

Fel y byddech chi'n disgwyl y bydd y gair maisie yn cael ei arddangos. Nawr agorwch subhell a mathwch echo $ c eto. Y tro hwn, byddwch chi'n gweld bod y gair maisie yn cael ei arddangos er eich bod chi mewn subhell.

Y rheswm dros hyn yw bod y gorchymyn allforio wedi gwneud y newidiad $ c yn fyd-eang. Nid yw newid y newidyn $ c yn y subhell hyd yn oed os ydych chi'n defnyddio'r gorchymyn allforio yn cael unrhyw effaith ar ei gregyn rhiant.

Gobeithio o hyn y gallwch weld bod gan rywun arwyddocâd wrth wybod y lefel gragen yr ydych yn gweithio ynddi wrth ysgrifennu sgriptiau.

Mae'r enghreifftiau a roddais yn syml iawn ond mae'n eithaf cyffredin i un sgript gragen alw sgript arall o gragen sydd, yn ei dro, yn galw sgript arall o gragen, gan bob un ohonynt bellach yn rhedeg ar wahanol lefelau. Gall gwybod y lefel gragen fod yn bwysig iawn.