Wie überprüfe ich die NGINX-Konfiguration mit Bash?

Wie überprüfe ich die NGINX-Konfiguration mit Bash?

Ich muss die NGINX-Konfiguration programmgesteuert mit Bash auf Korrektheit prüfen. Das Ergebnis des Befehls nginx -t wird einer Variablen zugewiesen, und unter der Bedingung vergleiche ich, ob die Teilzeichenfolge - Syntax in Ordnung ist - mit dem Ergebnis der Variablenausgabe übereinstimmt. Leider klappt das nicht. Was mache ich falsch?

    CHECK="nginx -t"
    SUB='syntax is ok'
    if [[ "eval $CHECK" == *"$SUB"* ]]; then
    echo "syntax is ok"
    else 
    echo "syntax is not ok"
    fi

Danke!

Antwort1

nginx -tliefert einen nützlichen Fehlercode, den Sie einfach verwenden können:

if nginx -t > /dev/null 2>&1; then
  echo "syntax is ok"
else 
  echo "syntax is not ok"
fi

verwandte Informationen