GNU/Linux >> Znalost Linux >  >> Ubuntu

Proč se vzor Awk neshoduje s argumenty konfigurace Nginx -v?

Snažím se získat pouze konfigurační argumenty zkompilovaného nginx na Ubuntu 14.04 pomocí příkazového řádku.

Spuštění /usr/local/nginx/sbin/nginx -V nám dá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

Což dává smysl.

Takže teď chci oříznout tento řádek, abych měl jen:

–s-http_ssl_module –with-http_stub_status_module –add-module=/usr/local/src/nginx-goodies-nginx-sticky-module-ng-c78b7dd79d0d –with-http_sub_module

Po zhlédnutí online se zdá, že buď

/usr/local/nginx/sbin/nginx -V | sed -n -e '/arguments/ s/.*\: *//p'

nebo

/usr/local/nginx/sbin/nginx -V | awk -F":" '{print $NF}'

nebo

/usr/local/nginx/sbin/nginx -V | egrep -o '\\-\\-'

Ale všechny mají stejný výstup jako nginx -V

Čemu nerozumím špatně?

Přijatá odpověď:

Je tam : používá se na každém řádku , takže s řádkem můžete zacházet jako s několika částmi oddělenými : a ve vašem případě chcete 2. pole, kde je configure arguments objeví se řetězec:

/usr/local/nginx/sbin/nginx -V  2>&1 | awk -F ':' '/configure arguments/{print $2}' 

Jak bylo zmíněno v komentářích pod otázkou, výstup -V přechází do chybového streamu, takže jsme jej museli převést do stdout stream (což je to, co 2>&1 ano)


Ubuntu
  1. nginx - 413 entita požadavku je příliš velká

  2. Linux – sloučení /usr/bin A /usr/sbin do /bin (gnu/linux)?

  3. Jaké jsou významy /usr/sbin, /usr/local/sbin a /usr/local/bin?

  1. Nainstalujte Nginx a nakonfigurujte virtuálního hostitele v Ubuntu 20.04

  2. /usr/bin Vs /usr/local/bin Na Linuxu?

  3. getpwnam(www) se nezdařilo v /etc/nginx/nginx.conf

  1. Rozdíl mezi /opt a /usr/local?

  2. Proč Atlantic.Net zvolil NGINX

  3. Nainstalujte binární soubory do /bin, /sbin, /usr/bin a /usr/sbin, interakce s --prefix a DESTDIR