Ich versuche, nur die Konfigurationsargumente von kompiliertem Nginx unter Ubuntu 14.04 über eine Befehlszeile abzurufen.
Ausführen von /usr/local/nginx/sbin/nginx -V
gibt uns:
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
Was Sinn macht.
Jetzt möchte ich diese Zeile kürzen, um nur noch Folgendes zu haben:
–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
Nachdem ich online nachgesehen habe, scheint es beides zu sein
/usr/local/nginx/sbin/nginx -V | sed -n -e '/arguments/ s/.*\: *//p'
oder
/usr/local/nginx/sbin/nginx -V | awk -F":" '{print $NF}'
oder
/usr/local/nginx/sbin/nginx -V | egrep -o '\\-\\-'
Aber sie geben alle dasselbe als nginx -V
aus
Was verstehe ich falsch?
Akzeptierte Antwort:
Da ist :
in jeder Zeile verwendet, sodass Sie die Zeile als mehrere Teile behandeln können, die durch :
getrennt sind , und in Ihrem Fall möchten Sie das zweite Feld, in dem configure arguments
Zeichenfolge erscheint:
/usr/local/nginx/sbin/nginx -V 2>&1 | awk -F ':' '/configure arguments/{print $2}'
Wie in den Kommentaren unter der Frage erwähnt, ist die Ausgabe von -V
geht zum Fehlerstrom, also mussten wir es zum stdout
gehen lassen stream (was 2>&1
tut)