У мене знайдений скрипт, і я намагаюся його запустити, він просто завантажує та встановлює бібліотеки виконання програми Apache. Перший рядок - set -e
це і викликає помилку; що робить set -e
?
У мене знайдений скрипт, і я намагаюся його запустити, він просто завантажує та встановлює бібліотеки виконання програми Apache. Перший рядок - set -e
це і викликає помилку; що робить set -e
?
Відповіді:
Цей вбудований настільки складний, що заслуговує власного розділу.
Набір дозволяє змінювати значення параметрів оболонки та встановлювати позиційні параметри, або відображати імена та значення змінних оболонок.
-e
варіант
-е
Вийдіть негайно, якщо конвеєр (див. Трубопроводи), який може складатися з однієї простої команди (див. Прості команди), команди підрозділу, вкладеної в дужки (див. Групування команд), або однієї з команд, виконаних у складі списку команд, доданого дужки (див. Групування команд) повертає ненульовий статус. Оболонка не виходить, якщо команда, яка не вдається, є частиною списку команд відразу після деякого часу або до появи ключового слова, частина тесту в операторі 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
і повне керівництво bash єinfo bash
, якщо у вас встановлений bash-doc.