Книга: Linux-сервер своими руками

19.7.3. Подоболочки

19.7.3. Подоболочки

При написании сценариев вы можете использовать механизм подоболо-чек. Если вы знакомы с каким-нибудь языком программирования, то должны знать об области распространения действия переменных. Существуют глобальные и локальные переменные. Первые действуют во всей программе, а вторые только внутри определенного блока, например, функции. Если в локальной функции определена переменная с таким же именем, что и одна из глобальных переменных, в этом локальном блоке будет использоваться значение локальной переменной. Далее приведен простейший пример программы, использующей локальные и глобальные переменные на языке Pascal:

Program Test;
 Var A : integer; {глобальная переменная}
procedure GetLocal ;
 var A: integer; {локальная переменная)
begin
 А:= 10;
 writeln(A);
end;
begin
 А:=7;
 writeln(A);
 GetLocal(A);
 writeln(A);
end;

При запуске программа выведет на экран:

7
10
7

В bash наблюдается нечто подобное. Этот блок называется подоболочкой. Если список команд заключен в фигурные скобки, то он выполняется в текущей оболочке, а если в обыкновенные, то в подоболочке. Итак, рассмотрим выполнение почти аналогичных сценариев:

#!/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

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

pwd; (cd /tmp; pwd;); pwd

Сценарий выведет на экран:

/home/user
/tmp
/home/user

Оглавление книги


Генерация: 0.304. Запросов К БД/Cache: 2 / 1
поделиться
Вверх Вниз