Для чего использовать set -e в bash
set -e
используется для немедленного выхода из скрипта в том случае, если любая команда внутри него завершится с ненулевым статусом (ошибкой)
Пример без set -e
:
#!/bin/bash
echo "Начало"
ls /несуществующая_папка # Ошибка, но скрипт продолжит выполнение
echo "Конец"
Вывод будет таким:
Начало
ls: невозможно получить доступ к '/несуществующая_папка': Нет такого файла или каталога
Конец
При этом скрипт продолжит выполнение, несмотря на то, что ls
завершился с ошибкой
Пример с set -e
:
#!/bin/bash
set -e
echo "Начало"
ls /несуществующая_папка # Ошибка, и скрипт завершится
echo "Конец" # Не выполнится
Вывод будет идентичным прошлому примеру, но скрипт завершит свое выполнение как раз из-за set -e