当我试图获得nginx版本时,会发生一些奇怪的事情。
当我运行此命令时:
echo "[nginx]" $(nginx -v)
打印
nginx version: nginx/1.4.6 (Ubuntu)
[nginx]
请注意,[nginx]
位位于 nginx版本之下。
当我尝试使用Node OTOH echo "[node]" $(node --version)
时,我得到:
[node] v0.10.45
这是预期的顺序,所以它不是echo的问题。如何让nginx以正确的顺序打印?
不确定这是否是Bash / shell问题或nginx程序或其他什么搞笑。
答案 0 :(得分:3)
谁知道决定的原因,but nginx outputs to stderr。您可以通过将stderr传递给stdout来捕获它:
echo "[nginx]" $(nginx -v 2>&1)
答案 1 :(得分:0)
如果你想把它管道化为格式字符串,你可以这样做:
$(nginx -v) | printf "[nginx] "
甚至......
nginx -v | printf "[nginx]%1s"