Bash 脚本有什么不同?

Bash 脚本有什么不同?

我一直在研究 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

相关内容