我试图在脚本中测试nginx配置:
log
但$ reply不包含返回的文本。如果我把第一行放在终端中,nginx文本会在终端中弹出,但是如果我在终端中放入第二行,则没有输出。 我的兴趣是在if语句中使用该nginx测试的输出
/admin/structure/ds/view_modes
有没有办法让变量命令nginx -t返回输出?
答案 0 :(得分:3)
根据您的条件判断您正在测试错误消息,这意味着nginx
很可能会将其打印到 stderr ,而{{} 1}}默认情况下仅捕获 stdout 输出。
要捕获两个流,请使用:
$(...)
reply="$(nginx -t 2>&1)"
将stderr重定向到stdout,以便2>&1
command substitution捕获stderr。