Что задает -e?

19

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

    
задан spitfiredd 18.09.2013 в 03:20
источник

2 ответа

14
  

Этот встроенный интерфейс настолько сложный, что он заслуживает своего собственного раздела.      

набор   позволяет изменять значения параметров оболочки и устанавливать   позиционные параметры или отображение имен и значений оболочки   переменные.

Параметр -e

  

-e      

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

     

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

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

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

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

man bash 

в разделе: SHELL BUILTIN COMMANDS

или вопрос

help set 

для короткого справочного сообщения.     

ответ дан Nick Thom 18.09.2013 в 03:42
источник
6

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

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

См. больше на:

[1] Ссылка

[2] Ссылка

    
ответ дан Devy 07.07.2016 в 21:35