존재하지 않는 파일을 가져올 때 트랩이 트리거되지 않는 이유는 무엇입니까?

존재하지 않는 파일을 가져올 때 트랩이 트리거되지 않는 이유는 무엇입니까?
#!/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종료 코드는 무슨 일이 있어도 true입니다.


이것을 제거하면 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

관련 정보