コマンドラインを使用して、Ubuntu14.04でコンパイルされたnginxのconfigure引数だけを取得しようとしています。
/usr/local/nginx/sbin/nginx -V
を実行しています 与える:
nginx version: nginx/1.8.1
built by gcc 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.1)
built with OpenSSL 1.0.1f 6 Jan 2014
TLS SNI support enabled
configure arguments: --with-http_ssl_module --with-http_stub_status_module --add-module=/usr/local/src/nginx-goodies-nginx-sticky-module-ng-c78b7dd79d0d --with-http_sub_module
これは理にかなっています。
だから今、私はこの線を切り取って次のようにしたい:
–with-http_ssl_module –with-http_stub_status_module –add-module =/ usr / local / src / nginx-goodies-nginx-sticky-module-ng-c78b7dd79d0d –with-http_sub_module
オンラインで見ると、どちらかのようです
/usr/local/nginx/sbin/nginx -V | sed -n -e '/arguments/ s/.*\: *//p'
または
/usr/local/nginx/sbin/nginx -V | awk -F":" '{print $NF}'
または
/usr/local/nginx/sbin/nginx -V | egrep -o '\\-\\-'
ただし、これらはすべてnginx -V
と同じように出力されます。
何が間違っているのですか?
承認された回答:
:
があります 各行で使用されるため、行を:
で区切られた複数の部分として扱うことができます。 、そしてあなたの場合、configure arguments
する2番目のフィールドが必要です 文字列が表示されます:
/usr/local/nginx/sbin/nginx -V 2>&1 | awk -F ':' '/configure arguments/{print $2}'
質問の下のコメントで述べたように、-V
の出力 エラーストリームに移動するため、stdout
に移動する必要がありました ストリーム(これは2>&1
します)