Bash:对错误响应执行多项操作

Bash:对错误响应执行多项操作

我有以下命令:

/path/to/script.sh && echo "done."; exit 0 || echo "error."; exit 1

我想要的是如果脚本成功则回显“完成”并以 0 退出,如果不成功则回显“错误”并以 1 退出,但它不是这样工作的,它错过了优先级。

这要怎么处理呢?

===编辑。 ===

使用 {} 也无法按需要工作。像 ./true.sh && { echo done.; 这样的命令./错误.sh; } || { 回显错误;回显错误1;工作错误,因为它输出完成以及之后的所有错误。 ps:true返回0,error返回1。

答案1

if /path/to/script.sh; then
    echo "done."
    exit 0
else
    echo "error."
    exit 1
fi

或者,继续说一句:

/path/to/script.sh && echo done. || { echo error. ; exit 1; }

您的编辑表明该A && { B1 ; B2 ; } || { C1 ; C2 ; }符号不起作用。假设 B2 返回 1,这不是你最初的帖子所说的(出口 0 在哪里?你尝试过添加 1 吗?)。

相关内容