尽管获得了输出,但 diff 命令仍退出代码为“1”

尽管获得了输出,但 diff 命令仍退出代码为“1”
user@mbp$ diff --suppress-common-lines -y file1.txt file2.txt

一些输出

user@mbp$ echo $? 

1 

user@mbp$

我很好奇如果它能满足我的需要,为什么它会抛出退出代码 1 而不是 0?

我意识到这更像是一个一般性的问题,而不是 ubuntu 的问题。

答案1

快速阅读 diff 手册页后,我发现退出代码与我所想的不同。

退出代码 1 = 发现差异。

答案2

是的,我也遇到了同样的问题,当存在差异时,退出代码为 1。在我的场景中,我在脚本中使用它来输出差异,如果我需要在出现故障时进行故障排除,这将很容易。

因此,为了避免脚本因上述错误而失败,我使用了以下格式的命令,以避免失败,diff file1.tst file2.tst || true

这样,命令就会被执行,而且由于它已经与 true 进行或运算,退出代码将为 0,脚本将继续运行而不会退出。

希望能帮助到你!!!

相关内容