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