Unix 如何刷新diff的输出

Unix 如何刷新diff的输出,unix,diff,ksh,Unix,Diff,Ksh,我有这样的脚本 diff abc def if [ "$?" -eq "0" ]; then make modules_install enif 如何避免差异的产生 如果我执行了diff abc def 2>/dev/null,则仍然输出显示 有什么想法吗?您必须重定向stdout和stderr。您可以使用以下选项: diff abc def > /dev/null 2>&1 && make modules_install

我有这样的脚本

diff abc def

if [ "$?" -eq "0" ]; then          

    make modules_install

enif
如何避免差异的产生

如果我执行了
diff abc def 2>/dev/null
,则仍然输出显示


有什么想法吗?

您必须重定向stdout和stderr。您可以使用以下选项:

diff abc def > /dev/null 2>&1 && make modules_install
如果在文件相同的情况下需要执行多项操作,则If语句会更好:

if diff abc def > /dev/null 2>&1; then
  make modules_install
fi

注意:当命令的退出代码为0时,shell中的测试将被视为true。

只需执行diff abc def>/dev/null即可。您不需要使用diff来决定是否要运行make。
make
命令用于测试最终构建目标的所有组件,以查看这些组件是否是最新的。如果有新的,make将控制重建使最终对象更新所需的最小代码集。您必须使用makefile来告诉make哪些是依赖项。看看gmake博士。祝你好运