Bash:在变量中重定向 init.d 输出

发布于 2024-10-26 07:14:39 字数 435 浏览 8 评论 0原文

我尝试将 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.

我们怎样才能在屏幕上不返回任何内容? 谢谢。

尼科

I try to redirect the output of an init.d command to a variable without displaying it on screen, but this does not work.
For example this works :

gt; var=`uname -a`
gt; echo $var
gt; Linux

But not this :

gt; var=`/etc/init.d/nginx reload`
gt; the configuration file /etc/nginx/nginx.conf syntax is ok
configuration file /etc/nginx/nginx.conf test is successful
gt; echo $var
gt; Reloading nginx configuration: nginx.

How can we do to return nothing on the screen please?
Thanks.

Nico

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

川水往事 2024-11-02 07:14:39

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
#

nginx -t writes those messages on standard error, not on standard output, so you need to capture those too:

# 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
#
你的往事 2024-11-02 07:14:39

它完全有可能进入 stderr 而不是 stdout。你可以尝试这样的事情:

var=`/etc/init.d/nginx reload 2>&1`

测试。

It is entirely possible it is going to stderr instead of stdout. You could try something like this:

var=`/etc/init.d/nginx reload 2>&1`

to test.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文