Spec-Zone.ru › Bash

Команды группирования

Bash предоставляет два способа группирования списка команд для выполнения как единого целого. Когда команды сгруппированы, перенаправления могут применяться ко всему списку команд. Например, вывод всех команд в списке может быть перенаправлен в один поток.

()
( list )

Размещение списка команд в скобках заставляет оболочку создавать дочернюю оболочку (см. Среду выполнения команд), и каждая из команд в list выполняется в этой среде дочерней оболочки. Поскольку list выполняется в дочерней оболочке, присваивания переменных не сохраняются после завершения дочерней оболочки.

{}
{ list; }

Размещение списка команд в фигурных скобках вызывает выполнение списка в текущем контексте оболочки. Дочерняя оболочка не создаётся. Точка с запятой (или перевод строки) после list требуется.

В дополнение к созданию дочерней оболочки, между этими двумя конструкциями существует небольшое различие по историческим причинам. Фигурные скобки являются служебными словами, поэтому они должны быть разделены от list пробелами или другими метасимволами оболочки. Скобки являются операторами и распознаются оболочкой как отдельные токены, даже если они не разделены пробелами от list.

Код возврата обоих этих конструкций — это код возврата list.

Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
Licensed under the GNU Free Documentation License.
https://www.gnu.org/software/bash/manual/html_node/Command-Grouping.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API