我有
diff <file1> <file2>
不返回任何内容
我希望它在条件内,当diff返回任何内容时,这是真的。我试过几种方式,但是我一直在执行其他命令。
答案 0 :(得分:2)
如果要检查两个文件是否相等,可以检查diff -q
(或cmp
)的退出代码。这更快,因为它不需要找到确切的差异:
if diff -q file1 file2 > /dev/null
then
echo "The files are equal"
else
echo "The files are different or inaccessible"
fi
所有Unix工具都有一个退出代码,检查它的速度通常更快,更容易,更健壮,而不是以基于文本的方式捕获和比较它们的输出。
答案 1 :(得分:0)
您可以使用逻辑管道:
对于一个命令:
diff -q file1 file2 > /dev/null && echo "The files are equal"
或更多命令:
diff -q file1 file2 > /dev/null && {
echo "The files are equal"; echo "Other command"
echo "More other command"
}