请注意:
mark@L-R910LPKW:~$ f(){ set -euo pipefail ; git statu; echo $?; } && f && echo OK ; set +euo pipefail
git: 'statu' is not a git command. See 'git --help'.
The most similar commands are
status
stage
stash
1
OK
mark@L-R910LPKW:~$
命令是f(){ set -euo pipefail ; git statu; echo $?; } && f && echo OK ; set +euo pipefail
我的问题是 - 为什么该函数在运行失败后f
不会git statu
立即中止?运行该命令清楚地显示git statu
失败,退出代码为 1,但仍继续前进,echo $?
而不是按照 的要求中止set -e
。
这在手册中有详细记录:
-e
您的函数确实在不被忽略的上下文中中止。例如: