当bash命令产生返回码非零时自动退出

时间:2018-11-26 18:33:42

标签: bash

在bash中,如果命令行返回码不为零,我们如何使脚本自动退出。例如:

#!/bin/bash

cd /something_something
mv file_a /somedir/file_a # this produce an error
echo $?  # This produce a non-zero output
echo "We should not continue to this line"

我知道我们可以使用#!/bin/bash -x调试bash脚本,但是有时候脚本太长了,它运行得如此之快,并且我们错过了重要的错误。

我不想继续写 [[ $? -ne 0 ]] && run next_command

1 个答案:

答案 0 :(得分:2)

lots of problems个正在使用set -e。只需将命令与&&连接起来,并使用if语句测试结果即可。

if cd /something_something && mv file_a /somedir/file_a; then
    echo $?
    exit
fi
echo "Both cd and mv worked"