GNU/Linux >> Tutoriales Linux >  >> Linux

Falla la redirección de la salida del comando a una variable en bash

Tal vez la salida vaya a stderr , no stdout ? Prueba esto:

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

Para la posible situación de nginx cuando la prueba de configuración puede tener éxito con un error en los archivos de configuración. Ejemplo:

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

para corregir los errores de verificación en los scripts de bash, necesita usar:

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

Linux
  1. Bash secuencias de comandos (I)

  2. ¿Por qué es legal establecer una variable antes de un comando en Bash?

  3. ¿El comando Rm en Bash Script no funciona con variables?

  4. ¿Dividir la salida del comando por columnas usando Bash?

  5. ¿Capture automáticamente la salida del último comando en una variable usando Bash?

Variable de exportación de bash

Comando de espera bash

Comando Bash printf

Bash Beginner Series #2:Comprender las variables en Bash Shell Scripting

¿Redirigir la salida del comando de tiempo en Unix a una variable en bash?

Salida detallada del comando Bash find