GNU bash, version 5.0.16(1)-release (x86_64-pc-linux-gnu) Operating System: Ubuntu 20.04 LTS Kernel: Linux 5.4.0-33-generic Architecture: x86-64
bash errexit shell option does not work in some cases. after execution a command, exitcode is set to "1" but shell script does not exited. ################# WORK CASE ####################### #!/bin/bash -e # errexit option cat < not_exist.txt # not exist file echo end .... ###### result ###### $ ./test.sh # work as expected ./test.sh: line 3: not_exist.txt: No such file or directory ################### NOT WORK CASES ####################### #!/bin/bash -e { cat ;} < not_exist.txt echo "exitcode : $?" echo end .... ###### result ###### $ ./test.sh exitcode : 1 # exitcode is set to "1" ./test.sh: line 3: not_exist.txt: No such file or directory end .... # but test.sh does not exited -------------------------------------------------------------------------------------- #!/bin/bash -e while read -r line; do echo "$line" done < not_exist.txt echo "exitcode : $?" echo end..... ###### result ###### $ ./test.sh ./test.sh: line 5: not_exist.txt: No such file or directory exitcode : 1 # exitcode is set to "1" end..... # but does not exited