Теперь можно дать общее определение
Теперь можно дать общее определение команды:
<команда> ::=
<простая команда> |
<оператор управления> |
<определение функции> |
<список> |
(<список>
) |
{ <список>
; }
Список в круглых скобках выполняется в порожденном командном интерпретаторе. Круглые скобки обычно используют для группировки команд.
Список в фигурных скобках выполняется в текущем командном интерпретаторе, без порождения дополнительного процесса, и замещает образ командного интерпретатора (это аналог системного вызова
exec).
Операторы управления и синтаксис определения функций рассматривается далее.
Рассмотрим пример сложной команды:
bash$ (sleep 5; date) & date [1] 1148 Wed Aug 20 15:00:11 ???? 1997 bash$ Wed Aug 20 15:00:16 ???? 1997
Фоновый процесс начинается, но сразу "засыпает"; тем временем вторая команда
date выдает текущее время, а интерпретатор - приглашение для ввода новой команды. Через пять (примерно, зависит от загрузки системы и т.п.) секунд прекращается выполнение команды
sleep и первая команда
date выдает новое время.
Содержание Назад Вперед