Eu recomendaria ter um script que você executa como um sub-shell, possivelmente sourcing um arquivo para ler nas definições de função. Deixe esse script definir a opção errexit
shell para si mesmo.
Quando você usa source
na linha de comando, "o script" é efetivamente seu shell interativo. A saída significa encerrar a sessão do shell. Existem possivelmente maneiras de contornar isso, mas a melhor opção, se você quiser definir errexit
para uma sessão, seria simplesmente ter:
#!/bin/bash
set -o errexit
source file_with_functions
do_things_using_functions
Benefício adicional: não poluirá a sessão interativa com funções.