2012-02-17 155 views
0

的输出我有脚本这样的事情如何刷新DIFF

diff abc def 

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

    make modules_install 

enif 

如何避免差异

的输出中,如果我做diff abc def 2 >/dev/null话还是输出中显示。

有什么想法?

+0

这很简单,只需要执行diff abc def>/dev/null – user79292 2012-02-17 18:50:32

+0

您不应该使用diff来决定是否要运行make。 'make'命令旨在测试最终构建目标的所有组件,以查看组件是否是最新的。如果有新的话,make会控制重建使最终对象保持最新所需的最小代码集。你使用makefile来告诉make什么是依赖关系。看看gmake文档。祝你好运。 – shellter 2012-02-19 03:35:47

回答

1

您必须重定向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中的测试被认为是正确的。