需要一个命令来显示回显“成功”

需要一个命令来显示回显“成功”
diff -q file_1 File_2 || echo "success" && diff -q file_3 File_4 || echo "success" 

使用了这个命令,但这不是我需要的正确逻辑,必须编辑一些方法。

这里file_1 File_2和 file_3 File_4 不同,echo 将执行两次,应该只执行一次,而且如果文件 file_1 File_2 或 file_3 File_4 不同,那么也echo "success"应该只执行一次。

答案1

如果您坚持进行短路评估,请使用命令分组{}

{ diff -q f1 f2 && diff -q f3 f4 ;} && echo 'Matched' || echo 'Different'

子 shell()也可以:

( diff -q f1 f2 && diff -q f3 f4 ) && echo 'Matched' || echo 'Different'

如果您不想要 的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'

您最好将其放入if构造中以使其更清晰,这将使您可以轻松识别文件:

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

相关内容