if 语句条件内部的差异 - 如何使其变为真?
Diff inside if-statement condition - how to make it true?
我有
diff <file1> <file2>
returns 没什么
我想要它在 diff returns 什么都没有的情况下为真。我尝试了几种方法,但一直执行其他命令。
如果要检查两个文件是否相等,可以检查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 工具都有一个退出代码,检查它通常比以基于文本的方式捕获和比较它们的输出更快、更容易和更可靠。
可以使用逻辑管道:
对于一个命令:
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"
}
我有
diff <file1> <file2>
returns 没什么
我想要它在 diff returns 什么都没有的情况下为真。我尝试了几种方法,但一直执行其他命令。
如果要检查两个文件是否相等,可以检查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 工具都有一个退出代码,检查它通常比以基于文本的方式捕获和比较它们的输出更快、更容易和更可靠。
可以使用逻辑管道:
对于一个命令:
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"
}