输出未传递给指定变量的命令

时间:2016-05-26 20:39:00

标签: linux bash shell

我试图在脚本中测试nginx配置:

log

但$ reply不包含返回的文本。如果我把第一行放在终端中,nginx文本会在终端中弹出,但是如果我在终端中放入第二行,则没有输出。 我的兴趣是在if语句中使用该nginx测试的输出

/admin/structure/ds/view_modes

有没有办法让变量命令nginx -t返回输出?

1 个答案:

答案 0 :(得分:3)

根据您的条件判断您正在测试错误消息,这意味着nginx很可能会将其打印到 stderr ,而{{} 1}}默认情况下仅捕获 stdout 输出。

要捕获两个流,请使用:

$(...)

reply="$(nginx -t 2>&1)" 将stderr重定向到stdout,以便2>&1 command substitution捕获stderr。