Настройка и работа в Linux
adb5321d

Подоболочки


Рассмотрим два почти аналогичных сценария #!/bin/bash # Сценарий 1 NUM=”one”;  (NUM=”two”; echo $NUM;); echo $NUM

#!/bin/bash # Сценарий 2 NUM=”one”;  {NUM=”two”; echo $NUM;}; echo $NUM

Сценарий 1 выведет на экран следующую информацию:

two
one

А сценарий 2

two
two

Если список команд заключен в фигурные скобки, то он выполняется в текущей оболочке, а если в круглые – то в подоболочке. Механизм подоболочек, как вы уже успели догадаться, связан с областью действия переменных. Как и в любом другом языке программирования, в bash существуют два типа переменных: глобальный и локальные. Поскольку переменные в bash не описываются в начале программы, как в других языках, например, Pascal, внутри блока можно использовать как глобальные переменные (описанные в основном блоке сценария), так и локальные (описанные в этом блоке, при условии, что этот блок является подоболочкой).

В этой статье я попытался объять необъятное, поэтому совсем не удивительно, что некоторые возможности bash (функции, циклы until и select, протоколирование, обработка сигналов…) не рассмотрены, а некоторые рассмотрены не очень подробно (команда test). Возможно, эти возможности я рассмотрю в своих последующих статьях. А сейчас могу предложить вам список ссылок, посвященных bash, shell, а также Unix-системам вообще: http://dkws.narod.ru/linux/books_.html

Вниманию вебмастеров: использование данной статьи возможно только в соответствии
с правилами использования материалов сайта «Софтерра» (http://www.softerra.ru/site/rules/)



Содержание раздела