O comando set +o
lista as configurações atuais como comandos que restauram o mesmo estado, por exemplo,
$ set +o
set +o allexport
set -o braceexpand
set -o emacs
set +o errexit
set +o errtrace
...
Você pode restaurar facilmente todas as opções mais tarde, se salvar esta saída em uma variável do shell:
SAVED_OPTIONS=$(set +o)
set -e
# do something
eval "$SAVED_OPTIONS"
Bash inclui também um número de opções não-padrão (não POSIX) que são ajustadas usando o comando shopt
. O comando shopt -p
pode ser usado para salvar essas opções de maneira semelhante.
Se você quiser apenas salvar e restaurar uma opção, use a variável $ - environment, que lista o conjunto atual de opções como letras, por exemplo,
$ echo $-
himBH
Você pode usar algo assim para salvar e restaurar uma opção específica:
[[ $- = *e* ]]
SAVED_ERREXIT=$?
set -e
# do something
(( $SAVED_ERREXIT )) && set +e