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