Bash evalúa los operadores lógicos de modo que && siempre tenga prioridad. Así por ejemplo:
false || echo 1 && echo 2
1
2
y
true || echo 1 && echo 2
2
De acuerdo. Entonces digamos que quiero que la salida sea así:
false || (echo 1 && echo 2)
Pero sin invocar una subcapa.
La única solución que se me ocurre es esta:
false || if true; then echo 1; echo 2; fi
1
2
¿Existe alguna forma más clara, similar al paréntesis en C, de agrupar comandos sin tener que invocar un subshell?
Respuesta1
false || { echo 1 && echo 2; }