Како и зошто би ја користеле $ SHLVL променливата

Променливата $ SHLVL се користи за да ви каже колку длабоки сте. Ако сте збунети од ова, вреди да се започне на почетокот.

Што е школка?

Школка ги зема командите и им дава на основниот оперативен систем за извршување. Во повеќето Линукс системи, програмата за школка се нарекува BASH (The Bourne Again Shell), но има и други достапни, вклучувајќи ја C Shell (tcsh) и KORN shell (ksh).

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

Општо земено, како корисник комуницирате со програмата за школка преку употреба на терминална програма за емулација , како што се XTerm, konsole или gnome-terminal.

Ако користите менаџер за Windows, како Openbox или работна околина како GNOME или KDE, ќе најдете терминален емулатор или од мени или цртичка. На многу системи, кратенка CTRL ALT и T ќе отвори и терминален прозорец.

Алтернативно можете да се префрлите на друг tty (телетапјутер) кој овозможува директен пристап до школка со командна линија. Ова можете да го направите со притискање на CTRL ALT и F1 или CTRL ALT и F2 итн.

Што е ниво на школка?

Кога извршувате команда во школка, таа работи на нешто што се нарекува ниво на школка. Во рамките на школка можете да отворите друга школка што ја прави подслој или школка што ја отвори.

Затоа, родителската школка би се сметала за школка од ниво 1, а детската школка би била школка од ниво 2.

Како да се прикаже нивото на школка

Не треба да изненадувате врз основа на насловот на статијата дека начинот на кој можете да ви кажете на кое ниво на ниво на школка ќе работите е со користење на променливата $ SHLVL.

За да го видите нивото на школка што во моментов се извршува во внесете го следново:

ехо $ SHLVL

Наместо интересно, ако ја извршите горната команда во терминалниот прозорец може да бидете изненадени кога ќе видите дека резултатот е 2.

Ако сепак ја извршите истата команда користејќи го tty тогаш резултатот е 1.

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

Tty не работи на десктоп средина и затоа е едноставно ниво 1 школка.

Како да креирате придружни

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

ехо $ SHLVL

Како што знаеме од терминалниот прозорец, минималното ниво на школка е 2.

Сега во терминалниот прозорец внесете го следново:

sh

Самата команда sh работи на интерактивна школка, што значи дека користите школка во рамките на школка или подслој.

Ако повторно внесете го ова:

ехо $ SHLVL

Ќе видите дека нивото на школка е поставено на 3. Вклучувањето на командата sh од рамките на подслот ќе отвори подслој на подслот и така нивото на школка ќе биде на ниво 4.

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

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

Да почнеме со нешто едноставно:

куче = maisie
ехо $ куче

Ако ја извршите горната команда во школка, зборот maisie ќе се прикаже на прозорецот на терминалот.

Отворете нова школка со внесување на следново:

sh

Ако ја извршите оваа команда, ќе видите дека ништо не е всушност вратено:

ехо $ куче

Тоа е затоа што променливата $ dog е достапна само на ниво на школка 2. Ако напишете излез за да излезете од подслојката и да го стартувате echo $ dog повторно, зборот maisie ќе се прикаже повторно.

Исто така, вреди да се размислува за однесувањето на глобалните променливи во рамките на школка.

Започни во нов терминален прозорец и внеси го следново:

извоз куче = maisie
ехо $ куче

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

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

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

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