使用 && 和 || 时无法停止 BASH 运营商

ITn*_*bie 0 bash ubuntu exit

如果命令有任何错误,我想停止我的 BASH。

make clean || ( echo "ERROR!!" && echo "ERROR!!" >> log_file && exit 1 )
Run Code Online (Sandbox Code Playgroud)

但我的 BASH 似乎仍在继续。如何输入exit 1单行运算符

我对 BASH 非常陌生,非常感谢任何帮助!

Bar*_*mar 6

exit 1从 所创建的子 shell 中退出(),而不是从原始 shell 中退出。用于{}将命令组保留在同一 shell 中。

不要&&在命令之间使用,除非您想在其中一个命令失败时立即停止。用于;分隔同一行上的命令。

make clean || { echo "ERROR!!" ; echo "ERROR!!" >> log_file ; exit 1 ;}
Run Code Online (Sandbox Code Playgroud)

或者只是if为了更容易理解而使用。

if ! make clean
then
    echo "ERROR!!"
    echo "ERROR!!" >> log_file
    exit
fi
Run Code Online (Sandbox Code Playgroud)