Se você insistir nas avaliações de curto-circuito, use o agrupamento de comandos {}
:
{ diff -q f1 f2 && diff -q f3 f4 ;} && echo 'Matched' || echo 'Different'
Uma subshell ()
também:
( diff -q f1 f2 && diff -q f3 f4 ) && echo 'Matched' || echo 'Different'
Se você não quiser a saída de diff
:
{ diff -q f1 f2 && diff -q f3 f4 ;} >/dev/null && echo 'Matched' || echo 'Different'
( diff -q f1 f2 && diff -q f3 f4 ) >/dev/null && echo 'Matched' || echo 'Different'
Você seria muito melhor colocar isso em if
constructs para tornar isso mais claro, isso permitirá que você identifique arquivos facilmente:
if diff -q f1 f2 >/dev/null; then
if diff -q f3 f4 >/dev/null; then
echo 'All Matched'
else
echo 'f3 and f4 are Different'
fi
else
echo 'f1 and f2 Different'
fi