4

假设我有以下脚本

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

这不是我想要的)

谢谢,里夫卡

4

3 回答 3

5

检查命令的返回状态,对应的变量是$?. 或者,您可以使用短路command || exit

于 2010-02-07T06:45:10.137 回答
1
echo in b
./a.sh && echo in b 2

这基本上检查了第一个脚本是否退出非零。如果这是真的,那么它才会运行第二个函数。

于 2010-02-07T06:48:31.930 回答
0

我认为没有明确检查子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 $?
于 2010-02-07T06:51:47.097 回答