CDT*_*CDT 7 linux shell makefile
我有一个rm *.o命令Makefile来删除编译期间生成的所有目标文件.但是,如果某个.o文件不存在,则会输出一些错误信息.那么如何抑制错误信息输出呢?
Hai*_* Vu 11
在make更重要的是输出的上下文中,您不希望make将结果rm视为失败.有两种方法可以解决它:
clean:
-rm *.o 2> /dev/null
rm -f *.o 2> /dev/null
Run Code Online (Sandbox Code Playgroud)
第一种方法是在命令前加一个减号,告诉make忽略返回代码.这是首选的,make特定的方式.第二种是使用-f标志,这只是特定的rm.
最重要的是,您可以选择是否抑制输出2> /dev/null.
在极少数情况下,可能还需要将输出重定向到/dev/null.你可能想做rm *.o > /dev/null 2>&1.该> /dev/null部分将stdout发送到/dev/null并且2>&1说要将stderr发送到stdout去的地方.