GNU/Linux >> Linux Esercitazione >  >> Linux

Il reindirizzamento dell'output del comando a una variabile in bash non riesce

Forse l'output va a stderr , non stdout ? Prova questo:

OUTPUT=$(sudo apache2ctl configtest 2>&1)

Per nginx possibile situazione in cui il configtest può avere esito positivo con errore nei file di configurazione. Esempio:

nginx: [warn] conflicting server name "test.com" on 0.0.0.0:80, ignored
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

per errori di controllo corretti negli script bash è necessario utilizzare:

if [[ $((sudo /sbin/service nginx configtest) 2>&1 | grep "failed\|warn" ) ]]; then
    echo "ERROR!!!"
else
    echo "OK!!!"
fi

Linux
  1. Come assegnare l'output di un comando Linux a una variabile

  2. Come assegnare l'output di un comando a una variabile di shell?

  3. Memorizzazione dell'output del comando nella variabile Shell?

  4. Perché impostare una variabile prima di un comando è legale in Bash?

  5. Come impostare una variabile uguale all'output di un comando in Grub2?

Variabile di esportazione Bash

Bash wait Comando

Comando Bash printf

Bash Beginner Series #2:Comprensione delle variabili nello scripting di Bash Shell

Reindirizzamento dell'output del comando nella finestra mobile

Reindirizzare l'output del comando time in unix in una variabile in bash?