我尝试将init.d命令的输出重定向到一个变量,而不在屏幕上显示它,但这不起作用。例如,这是可行的:
$> var=`uname -a`
$> echo $var
$> Linux
但不是这样的:
$> var=`/etc/init.d/nginx reload`
$> the configuration file /etc/nginx/nginx.conf syntax is ok
configuration file /etc/nginx/nginx.conf test is successful
$> echo $var
$> Reloading nginx configuration: nginx.
我们怎么做才能在屏幕上什么都不返回呢?谢谢。
尼科
发布于 2011-03-24 11:30:41
nginx -t
在标准错误上写入这些消息,而不是在标准输出上,所以您也需要捕获这些消息:
# var=`nginx -t 2>&1`
# echo $var
the configuration file /etc/nginx/nginx.conf syntax is ok configuration file /etc/nginx/nginx.conf test is successful
#
发布于 2011-03-24 11:28:41
完全有可能是stderr而不是stdout。您可以尝试如下所示:
var=`/etc/init.d/nginx reload 2>&1`
来测试。
https://stackoverflow.com/questions/5418332
复制相似问题