Списки команд
A list — это последовательность одной или нескольких конвейерных команд, разделенных одним из операторов ‘;’, ‘&’, ‘&&’ или ‘||’, и необязательно завершаемых одним из ‘;’, ‘&’ или a newline.
Из этих операторов списка ‘&&’ и ‘||’ имеют равный приоритет, за которым следуют ‘;’ и ‘&’, которые имеют равный приоритет.
Последовательность одной или нескольких новых строк может появляться в list для разделения команд, эквивалентно точке с запятой.
Если команда завершается управляющим оператором ‘&’, оболочка выполняет команду асинхронно в дочерней оболочке. Это известно как выполнение команды в фоновом режиме, и такие команды называются асинхронными. Оболочка не ожидает завершения команды, и возвращаемый код равен 0 (истина). Когда управление задачами не активно (см. Управление задачами), стандартный ввод для асинхронных команд в отсутствие явных перенаправлений перенаправляется из /dev/null.
Команды, разделенные ‘;’, выполняются последовательно; оболочка ждет завершения каждой команды по очереди. Возвращаемый код — это код завершения последней выполненной команды.
И и ИЛИ списки — это последовательности одной или нескольких конвейерных команд, разделенные управляющими операторами ‘&&’ и ‘||’ соответственно. И и ИЛИ списки выполняются с левой ассоциативностью.
Список И имеет вид
command1 && command2
command2 выполняется тогда и только тогда, когда command1 возвращает код завершения 0 (успех).
Список ИЛИ имеет вид
command1 || command2
command2 выполняется тогда и только тогда, когда command1 возвращает код завершения, отличный от нуля.
Возвращаемый код списков И и ИЛИ — это код завершения последней выполненной команды в списке.
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/Lists.html