como usar dois comandos exit code for test in if loop?

0

Eu quero testar dois códigos de comando em loop, mas sem nenhum tubo extra para eles

agora, eu posso usar um único comando, por exemplo.

if cmp -s file1 file2
then
....

mas como adicionar dois testes? isso seria ok:

if cmp -s file1 file2 && test -f file3
then
...

o seguinte não funciona para mim:

if [ $(cmp -s file1 file2) -a $(test -f file3) ]
then
...
    
por Chris 16.04.2018 / 16:02

1 resposta

3

if cmp -s file1 file2 && test -f file3
then
...

como escrito, o "if" falhará se um dos dois testes falhar e será bem-sucedido se ambos tiverem êxito, o que deve ser o que você deseja. Se você precisar da saída do segundo teste, você não deve fazer isso, porque ele não será executado se o primeiro teste falhar. Caso contrário, isso parece ser uma boa estratégia.

    
por 16.04.2018 / 16:36