我有以下bash脚本:
echo one
echo two
cd x
echo three
在第三行失败,因为没有名为x
的目录。但是,运行脚本后,当我执行$?
时,即使脚本有错误,也会返回0。如何检测脚本是否成功运行?
答案 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