Shell - 抑制单个命令的输出

时间:2013-03-15 12:37:37

标签: linux shell makefile

我在rm *.o中有一个Makefile命令,用于删除编译期间生成的所有目标文件。但是,如果某个.o文件不存在,则会输出一些错误信息。那么如何抑制错误信息输出呢?

3 个答案:

答案 0 :(得分:11)

make的上下文中,比输出更重要的是,您不希望make将rm的结果视为失败。有两种方法可以解决它:

clean:
    -rm *.o    2> /dev/null
    rm -f *.o  2> /dev/null

第一种方法是在命令前加一个减号,告诉make忽略返回码。这是首选的make特定方式。第二种是使用-f标志,该标志仅针对rm

除此之外,您可以选择使用2> /dev/null来抑制输出。

答案 1 :(得分:6)

在极少数情况下,可能还需要将输出重定向到/dev/null。你可能想做rm *.o > /dev/null 2>&1> /dev/null部分将stdout发送到/dev/null2>&1表示将stderr发送到stdout所在的位置。

答案 2 :(得分:2)

rm -f *.o

rm *.o >& /dev/null