bash:忽略退出代码,但保留输出重定向

gre*_*ade 5 bash diff

我有一个脚本的最后一行是:

git diff --no-index -- ./a.json ./b.json > ./a-b.diff

diff返回1文件不同时的退出代码,这会使我的脚本报告错误。

如何忽略diff的退出代码,但保留内容到diff文件的输出重定向?

Joh*_*024 5

尝试:

git diff --no-index -- ./a.json ./b.json > ./a-b.diff || true
Run Code Online (Sandbox Code Playgroud)

要么 :

git diff --no-index -- ./a.json ./b.json > ./a-b.diff || :
Run Code Online (Sandbox Code Playgroud)

或者,只要您不使用bash -e

git diff --no-index -- ./a.json ./b.json > ./a-b.diff
true
Run Code Online (Sandbox Code Playgroud)

基本上,您可以在已知的差异之后使用任何命令,这些命令将产生零(成功)退出代码。