Како и зашто бисте користили $ СХЛВЛ променљиву

$ СХЛВЛ варијабла се користи да вам каже колико је граната дубоко. Ако вас ово збуњује, вреди почети од почетка.

Шта је шкољка?

Шуранта узима команде и даје их основном оперативном систему за извођење. На већини Линук система схелл програм се назива БАСХ (Тхе Боурне Агаин Схелл), али постоје и други доступни укључујући Ц Схелл (тцсх) и КОРН схелл (ксх).

Како приступити Линук схелл

Генерално, као корисник, комуницирате с програмом схелл помоћу програма емулације терминала као што су КСТерм, консоле или гноме-терминал.

Ако покрећете управљач прозора попут Опенбок-а или десктоп окружења као што је ГНОМЕ или КДЕ, добићете терминал емулатор било из менија или цртице. На многим системима пречица ЦТРЛ АЛТ и Т ће отворити и терминалски прозор.

Алтернативно, можете пребацити на други тти (телетекст) који омогућава директан приступ схелл схелл-у. То можете учинити притиском на ЦТРЛ АЛТ и Ф1 или ЦТРЛ АЛТ и Ф2 итд.

Шта је ниво шкољке

Када покренете команду у љусци, ради на нечему што се назива ниво шкољке. У оквиру љуске можете отворити још једну шкољку која га чини подкомором или шкољком која је отворила.

Према томе, родитељска љуска би се можда сматрала за љуску нивоа 1, а дечачка љуска би била граната нивоа 2.

Како приказати ниво шкољке

На основу наслова чланка не треба изненадити да начин на који можете навести који ниво шкољке радите је кориштење $ СХЛВЛ варијабле.

Да бисте видели ниво шкољке у коме тренутно радите, унесите следеће:

ецхо $ СХЛВЛ

Интересантно, ако покренете горњу команду у оквиру терминала, можда ћете бити изненађени када видите да је вратити резултат 2.

Ако ипак покренете исту команду користећи тти онда је резултат 1.

Зашто је то случај који бисте могли да питате? Па, радно окружење на којем радите се покреће на врху љуске. Та граната би била ниво 1. Сваки терминални прозор који отворите из тог окружења за радно окружење мора бити дијете љуске која је отворила радно окружење и стога ниво шкољке не може започети ни у којем другом броју него 2.

Тти не покреће радно окружење и стога је једноставно лупа нивоа 1.

Како креирати подгрупе

Најлакши начин за тестирање концепта граната и подгрупа је следећи. Отворите прозор терминала и укуцајте следеће:

ецхо $ СХЛВЛ

Као што знамо из терминалног прозора минимални ниво шкољке је 2.

У прозору терминала укуцајте следеће:

сх

Сама команда сх води интерактивну љуску, што значи да користите грану унутар љуске или подгрупе.

Ако поново упишете ово:

ецхо $ СХЛВЛ

Видјет ћете да је ниво шкољке подешен на 3. Покретање сх наредбе из унутар подсхелла ће отворити подгрупу подслоха и тако ће ниво шкољке бити на нивоу 4.

Зашто је ниво шкољке важан?

Ниво шкољке је важан када размишљате о опсегу варијабли унутар ваших скрипти.

Почнимо са нечим једноставним:

пас = маисие
ецхо $ пас

Ако покренете горњу команду у схелл-у, ријеч маисие ће бити приказана у прозору терминала.

Отворите нову шкољку тако што ћете унети следеће:

сх

Ако покренете ову наредбу видећете да се ништа не враћа:

ецхо $ пас

То је зато што је варијабла $ дог доступна само на нивоу љуске 2. Ако упишете излаз да изађете из подсхелл-а и поново покренете ецхо $ дог, ријеч маисие ће се поновно приказати.

Такође је вредно размишљати о понашању глобалних варијабли унутар љуске.

Започните у новом терминалу и укуцајте следеће:

извозни пас = маисие
ецхо $ пас

Као што бисте очекивали да се прикаже порука маисие. Сада отворите подгрупу и поново откуцајте ецхо $ дог. Овога пута ћете видети да је реч маисие приказана иако сте у подсклопу.

Разлог за то је што је команда за извоз направила глобалну варијаблу $ дог. Промена варијабле $ пса унутар поддршавнице, чак и ако користите команду за извоз нема утјецаја на своје родитељске љуске.

Надамо се да из овога можете видети да познавање нивоа шкољке у којем радите има неки значај приликом писања скрипти.

Примери које сам дао су веома поједностављени, али је врло често да једна скрипта скенира другу схелл скрипту која заузврат назива другу схелл скрипту, која све сада ради на различитим нивоима. Познавање нивоа шкољке може бити веома важно.