Avaliando false no bash com vários comandos sem um subshell

1

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

false || echo 1 && echo 2
1
2

e

true || echo 1 && echo 2
2

Ok. Então vamos dizer que eu quero que a saída seja assim:

false || (echo 1 && echo 2)

Mas sem invocar um subnível.

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 a parênteses em C, para agrupar comandos sem ter que invocar uma subcamada?

    
por Zhro 28.10.2014 / 11:52

1 resposta

2
false || { echo 1 && echo 2; }
    
por 28.10.2014 / 11:55