2016-11-19 195 views
1

我make文件看起来像:如何抑制makefile的命令输出?

nstop: 
    @kill `cat ${APP_ROOT}/run/nginx.pid` ||: 

但我仍然得到输出:

$ make nstop 
cat: /run/nginx.pid: No such file or directory 
/bin/sh: 1: kill: Usage: kill [-s sigspec | -signum | -sigspec] [pid | job]... or 
kill -l [exitstatus] 

如何在反引号抑制来自命令的输出?

回答

1

我已经解决了通过错误输出重定向到/dev/null

nstop: 
    @kill `cat ${APP_ROOT}/run/nginx.pid 2>/dev/null` 2>/dev/null ||: 

但是,我认为,应该有更好的解决办法。

+1

这是一个shell问题,而不是一个问题。只需在shell中运行你的命令。它不知道或者对命令的输出做任何事情:它只是检查退出代码。你可以用()方法使你的文本稍微简单一些:'(kill'cat ...')2>/dev/null',所以至少你只需要写一次重定向。 – MadScientist