
Necesito verificar mediante programación que la configuración de NGINX sea correcta usando bash. El resultado del comando nginx -t se asigna a una variable y, según la condición, comparo la subcadena; la sintaxis está bien con el resultado de la salida de la variable. Desafortunadamente, no funciona. ¿Qué estoy haciendo mal?
CHECK="nginx -t"
SUB='syntax is ok'
if [[ "eval $CHECK" == *"$SUB"* ]]; then
echo "syntax is ok"
else
echo "syntax is not ok"
fi
¡Gracias!
Respuesta1
nginx -t
proporcionará un código de error útil, por lo que simplemente puede usar:
if nginx -t > /dev/null 2>&1; then
echo "syntax is ok"
else
echo "syntax is not ok"
fi