Avaliando false no bash com vários comandos sem subshell

Avaliando false no bash com vários comandos sem subshell

Bash avalia os operadores lógicos de forma que && sempre tenha precedência. Então, por exemplo:

false || echo 1 && echo 2
1
2

e

true || echo 1 && echo 2
2

OK. Então, digamos que eu queira que a saída seja assim:

false || (echo 1 && echo 2)

Mas sem invocar um subshell.

A única solução que consegui pensar é esta:

false || if true; then echo 1; echo 2; fi
1
2

Existe alguma maneira mais limpa, semelhante aos parênteses em C, de agrupar comandos sem precisar invocar um subshell?

Responder1

false || { echo 1 && echo 2; }

informação relacionada