Что делает set -e?

У меня есть скрипт, который я нашел, и я пытаюсь запустить его, он просто загружает и устанавливает библиотеки времени выполнения Apache. Первая строка - set -e, и она вызывает ошибку; что делает set -e?

28
задан 20 September 2017 в 01:45

2 ответа

set -e короче говоря, когда это наверху Вашего сценария удара, говорит сценарию выходить как только любая строка в сбоях сценария (за некоторыми исключениями, перечисленными в руководстве.) [1]

Как параметр отладки, это часто используется с set -x, который должен распечатать каждую расширенную командную строку перед выполнением с "+" знак. [2]

Посмотрите больше в:

[1] https://www.peterbe.com/plog/set-ex

[2] http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_03.html

12
ответ дан 20 September 2017 в 01:45

Эта встроенная программа настолько сложна, что заслуживает отдельного раздела.

set позволяет изменять значения параметров оболочки и задавать позиционные параметры или отображать имена и значения переменных оболочки.

Опция -e

-e

Выйти немедленно, если конвейер (см. Конвейеры), который может состоять из одной простой команды (см. Простая). Команды), команда subshell, заключенная в скобки (см. Группировка команд), или одна из команд, выполняемых как часть списка команд, заключенного в фигурные скобки (см. Группировка команд), возвращает ненулевое состояние. Оболочка не завершает работу, если сбойная команда является частью списка команд, следующих сразу за ключевым словом некоторое время или до, часть теста в операторе if, часть любой команды, выполненной в & amp; & amp; или || список, за исключением команды, следующей за последней & amp; & amp; или ||, любая команда в конвейере, кроме последней, или если статус возврата команды инвертируется с помощью!. Ловушка ERR, если установлена, выполняется до выхода из оболочки.

Этот параметр применяется к среде оболочки и к каждой среде подоболочки отдельно (см. Среду выполнения команд) и может привести к выходу подоболочек перед выполнением всех команд в подоболочке.

Источник: www.gnu.org

Отредактировано из-за комментария @ psusi ниже.

Кроме того, вы можете прочитать страницу руководства bash

man bash 

в разделе: КОМАНДЫ ВСТРОЕННОГО ОБОЛОЧКИ

или короткую

help set 

сообщение помощи

0
ответ дан 20 September 2017 в 01:45

Другие вопросы по тегам:

Похожие вопросы: