我一直在研究 makefile 和 bash 脚本并且对此很感兴趣:
是否可以从 diff(或类似的东西)中获取布尔值,以便我可以在 bash 脚本中使用它来评估 if 语句(这样用户就不会看到实际的 diff 执行)?
答案1
如果你需要的是逐字节比较,请使用cmp
:
if cmp -s "$a" "$b"; then
echo Same
else
echo Differ
fi
这避免了浪费diff
差异查找算法的时间。
答案2
是的:
如果 diff "$file_a" "$file_b" &> /dev/null ; 然后 echo "文件相同" 别的 echo“文件不同” 菲
答案3
手册中没有明确说明返回代码。不过,比较两个相同文件时,diff 应该始终返回 0。
diff -a $file1 $file2 > /dev/null 2>&1
if [ $? -eq 0 ]
then
...
fi