Я пишу сценарій, який потрібно виконати за допомогою source
, оскільки його завдання - модифікувати середовище. Під час сценарію я хочу використовувати set -e
так, щоб будь-яка помилка зупиняла сценарій. Сценарій виглядає приблизно так:
#!/bin/bash
set -e
# do something
cd somewhere
source anotherScript
Проблема в тому, що set -e
природно залишається в силі після закінчення сценарію. Як я можу гарантувати, що змінена set
опція буде належним чином відновлена до свого попереднього значення, коли сценарій припиняється (будь-яким чином - або успішно завершившись, або помилка)?