Bash 评估逻辑运算符时,&& 始终优先。例如:
false || echo 1 && echo 2
1
2
和
true || echo 1 && echo 2
2
好的。假设我希望输出如下:
false || (echo 1 && echo 2)
但没有调用子shell。
我能想到的唯一解决办法是:
false || if true; then echo 1; echo 2; fi
1
2
是否有任何更简洁的方法,类似于 C 中的括号,将命令组合在一起而不必调用子 shell?
答案1
false || { echo 1 && echo 2; }