假设我有以下脚本
灰
echo in a
if test 1 -ne 2; then
echo oops
exit 1
fi
b.sh
echo in b
./a.sh
echo in b 2
运行 b.sh 时,如果 a.sh 退出,我希望它退出。我该怎么做呢?
(当前输出为
in b
in a
oops
in b 2
这不是我想要的)
谢谢,里夫卡
检查命令的返回状态,对应的变量是$?
. 或者,您可以使用短路command || exit
echo in b
./a.sh && echo in b 2
这基本上检查了第一个脚本是否退出非零。如果这是真的,那么它才会运行第二个函数。
我认为没有明确检查子shell的返回状态的方法可以做到这一点,例如:
# This will run b.sh, and if that exits with a non-zero status, we will also
# exit with that same status; otherwise, we continue.
./b.sh || echo $?