存在しないファイルをインポートするときにトラップがトリガーされないのはなぜですか?

存在しないファイルをインポートするときにトラップがトリガーされないのはなぜですか?
#!/bin/bash

set -eEuo pipefail
set -x

function deploy_cleanup(){
    echo "---Cleaning up---"
    echo "hello"
}

trap deploy_cleanup ERR

whoami
source euaueoaue

出力:

+ trap deploy_cleanup ERR
+ whoami
chris
+ source euaueoaue
./xx.sh: line 14: euaueoaue: No such file or directory

source何か特別な状況ですか?1終了コードは何があっても真です。


これを削除するとset -e正常に動作するようです。

+ trap deploy_cleanup ERR
+ whoami
chris
+ source euaueoaue
./xx.sh: line 14: euaueoaue: No such file or directory
++ deploy_cleanup
++ echo '---Cleaning up---'
---Cleaning up---
++ echo hello
hello

ベストアンサー1

おすすめ記事