У меня есть скрипт, который я нашел, и я пытаюсь запустить его, он просто загружает и устанавливает библиотеки времени выполнения Apache. Первая строка set -e
и это вызывает ошибку; что делает set -e
?
У меня есть скрипт, который я нашел, и я пытаюсь запустить его, он просто загружает и устанавливает библиотеки времени выполнения Apache. Первая строка set -e
и это вызывает ошибку; что делает set -e
?
Ответы:
Эта встроенная программа настолько сложна, что заслуживает отдельного раздела.
set позволяет изменять значения параметров оболочки и устанавливать позиционные параметры или отображать имена и значения переменных оболочки.
-e
вариант
-e
Немедленно завершите работу, если конвейер (см. Конвейеры), который может состоять из одной простой команды (см. Простые команды), команды subshell, заключенной в скобки (см. Группирование команд), или одной из команд, выполняемых как часть списка команд, заключенного в фигурные скобки (см. Группировка команд) возвращает ненулевой статус. Оболочка не завершает работу, если сбойная команда является частью списка команд, который следует сразу после ключевого слова некоторое время или до, часть теста в операторе if, часть любой команды, выполняемой в && или || список, за исключением команды, следующей за последним символом && или ||, любой команды в конвейере, кроме последней, или если статус возврата команды инвертируется с!. Ловушка ERR, если установлена, выполняется до выхода из оболочки.
Этот параметр применяется к среде оболочки и каждой среде подоболочки отдельно (см. Среду выполнения команд) и может привести к выходу из подоболочек перед выполнением всех команд в подоболочке.
Источник: www.gnu.org
Отредактировано из-за комментария @ psusi ниже.
Дополнительно вы можете прочитать страницу руководства bash
man bash
в разделе: ОБОЛОЧКИ, ВСТРОЕННЫЕ КОМАНДАМИ
или проблема
help set
для краткого справочного сообщения.
help set
и / или man bash
являются правильными для set
.
set -e
короче говоря, когда он находится в верхней части вашего bash-скрипта, он сообщает, что скрипт должен завершиться, как только какая-либо строка в скрипте завершится неудачей (с некоторыми исключениями, перечисленными в руководстве.) [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
help set
полная инструкция по bashinfo bash
, если у вас установлен bash-doc.