Bash оценивает логические операторы таким образом, что && всегда имеет приоритет. Например:
false || echo 1 && echo 2
1
2
и
true || echo 1 && echo 2
2
Хорошо. Допустим, я хочу, чтобы вывод был таким:
false || (echo 1 && echo 2)
Но без вызова подоболочки.
Единственное решение, которое я смог придумать, это:
false || if true; then echo 1; echo 2; fi
1
2
Есть ли более понятный способ, аналогичный скобкам в языке C, для группировки команд без необходимости вызова подоболочки?
решение1
false || { echo 1 && echo 2; }