在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
答案 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"