我尝试将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.
我们如何才能在屏幕上返回任何内容? 感谢。
尼科
答案 0 :(得分:3)
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
#
答案 1 :(得分:2)
它完全有可能是stderr而不是stdout。你可以尝试这样的事情:
var=`/etc/init.d/nginx reload 2>&1`
进行测试。