我有以下命令:
/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 吗?)。