Bash检查脚本是否成功运行(退出代码不起作用)

时间:2019-07-08 09:25:08

标签: bash shell

我有以下bash脚本:

echo one
echo two
cd x
echo three

在第三行失败,因为没有名为x的目录。但是,运行脚本后,当我执行$?时,即使脚本有错误,也会返回0。如何检测脚本是否成功运行?

2 个答案:

答案 0 :(得分:1)

在脚本语句中检查目录存在的条件:

field1 = "abc"

或将[ -d x ] && cd x || { echo "no such directory"; exit 1; } 放在shebang行之后:

set -e

答案 1 :(得分:0)

您应该以退出语句结束

echo one
echo two
cd x
exitCode=$?
echo three
exit $exitCode;

然后

./myscript
echo $?
  

1