`2> / dev / null`在Makefile中不起作用

时间:2017-11-28 08:31:07

标签: makefile gnu-make

我尝试通过编写

来抑制来自rm命令的错误

生成文件:

...
clean: $(wildcard *.mod)
    -rm $^ 2>/dev/null
...

我跑了:

$ make clean
rm  2>/dev/null
make: [clean] Error 64 (ignored)

我仍然遇到了错误。

无论如何,当我尝试

$ rm [some non-existent files] 2>/dev/null

在bash shell上,它运行正常。

如何在makefile中使用2>/dev/null

1 个答案:

答案 0 :(得分:4)

"What do you usually drink?" contains 2 keywords: [usually, drink] 将重定向错误输出,因此您没有看到它,它不会阻止shell提高错误级别。 shell命令前面的2>dev/null符号将告诉-即使错误级别被提升也会继续,但它不会阻止shell提升它。

你想要的是不提高错误级别的shell,这可以这样做:

Unix (信用到this answer

GNU make

<强>窗

-rm $^ 2>/dev/null ; true

或者如果您在Windows上没有-rm $^ 2>NUL || true

rm