我陷入了一个奇怪的情况:我试图用 sed 提取 nginx 的版本,但它不起作用,只有字符串版本有效:
[root@hostname~]# echo $(nginx -v) | sed -n 's/nginx version: nginx\///p'
nginx version: nginx/1.16.1
[root@hostname~]# nginx -v | sed -n 's/nginx version: nginx\///p'
nginx version: nginx/1.16.1
[root@hostname~]# echo 'nginx version: nginx/1.16.1' | sed -n 's/nginx version: nginx\///p'
1.16.1
有什么线索吗?
With bash /questions/tagged/bash:
nginx -v |& sed 's/nginx version: nginx\///'
甚至更短/更简单:
nginx -v |& grep -oP '/\K.*'
或者对于 POSIX shell:
nginx -v 2>&1 | sed 's/nginx version: nginx\///'
The |&
部分很经典pipe但重定向STDERR
to STDOUT
与特殊的&
trick.
Because nginx -v
错误输出上的输出,又名STDERR
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)