Как сделать

Как и почему вы должны использовать переменную $ SHLVL

Снимок экрана: используется команда $ SHLVL Linux

Переменная $ SHLVL сообщает вам, сколько у вас глубоких оболочек. Если вас это смущает, стоит начать с самого начала.

Снимок экрана: используется команда $ SHLVL Linux

Что такое оболочка?

Оболочка принимает команды и выдает эти команды на основной операционной системы для выполнения. В большинстве систем Linux программа оболочки называется BASH (оболочка Bourne Again), но есть и другие, включая оболочку C (tcsh) и оболочку KORN (ksh).

Как получить доступ к оболочке Linux

Если вы запустите менеджер окон, такой как Openbox, или среду рабочего стола, такую ​​как GNOME или KDE , вы найдете эмулятор терминала из меню или из тире. Во многих системах сочетание клавиш CTRL + ALT + T открывает окно терминала.

Кроме того, вы можете переключиться на другой TTY (телетайп), который обеспечивает прямой доступ к оболочке командной строки. Вы можете сделать это, нажав CTRL + ALT + F1 или CTRL + ALT + F2 .

Что такое уровень оболочки?

Когда вы запускаете команду в оболочке, она запускается на уровне оболочки. Внутри оболочки вы можете открыть другую оболочку, что делает ее подоболочкой оболочки, открывшей ее. Поэтому родительская оболочка считается оболочкой уровня 1, а дочерняя оболочка — оболочкой уровня 2.

Как отобразить уровень оболочки

Чтобы определить, на каком уровне оболочки вы работаете, используйте переменную $ SHLVL. Чтобы увидеть уровень оболочки, на котором вы в данный момент работаете, введите следующее:

echo $ SHLVL

Когда вы запускаете вышеупомянутую команду в окне терминала, возвращаемый результат равен 2. Если, однако, вы запускаете ту же команду, используя tty, то результат равен 1. tty не запускает среду рабочего стола и является уровнем 1 оболочка.

Почему это так? Среда рабочего стола, которую вы используете, запускается поверх оболочки. Эта оболочка является уровнем 1. Любое окно терминала, которое вы открываете из этой среды рабочего стола, является дочерним элементом оболочки, которая открыла среду рабочего стола. Поэтому уровень оболочки не может начинаться с любого числа, кроме 2.

Как создать подоболочки

Самый простой способ проверить концепцию оболочек и подоболочек заключается в следующем. Откройте окно терминала, затем введите следующее:

echo $ SHLVL

Когда вы запускаете эту команду из окна терминала, минимальный уровень оболочки равен 2.

Введите следующее в окне терминала:

ш

Команда sh запускает интерактивную оболочку. Это означает, что вы используете оболочку внутри оболочки или подоболочку.

Если вы введете это снова:

echo $ SHLVL

Вы видите, что уровень оболочки установлен на 3. Выполнение команды sh из подоболочки открывает подоболочку подоболочки, поэтому уровень оболочки находится на уровне 4.

Почему важен уровень Shell?

Уровень оболочки важен, когда вы думаете о области действия переменных в ваших скриптах. Для простого примера:

собака = мейзи 
эхо $ собака

Если вы запустите указанную выше команду в оболочке, в окне терминала появится слово maisie .

Чтобы открыть новую оболочку, введите следующее:

ш

Когда вы запустите эту команду, вы увидите, что ничего не возвращается:

эхо $ собака

Это потому, что переменная $ dog доступна только на уровне оболочки 2. Если вы наберете команду exit, чтобы выйти из подоболочки и снова запустите echo $ dog, снова появится слово maisie .

Также стоит подумать о поведении глобальных переменных внутри оболочки.

Откройте новое окно терминала, затем введите следующее:

Похожие посты
Как сделать

Как получить возмещение за покупки в iTunes или App Store

Как сделать

Поверхностное перо не работает? Вот как это исправить

Как сделать

Как настроить и использовать Fire TV Recast

Как сделать

Как изменить рингтон по умолчанию на вашем iPhone