Vielleicht geht die Ausgabe an stderr
, nicht stdout
? Versuchen Sie Folgendes:
OUTPUT=$(sudo apache2ctl configtest 2>&1)
Für nginx mögliche Situation, wenn der Konfigurationstest mit Fehlern in den Konfigurationsdateien erfolgreich sein kann. Beispiel:
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
Für die korrekte Überprüfung von Fehlern in Bash-Skripten muss Folgendes verwendet werden:
if [[ $((sudo /sbin/service nginx configtest) 2>&1 | grep "failed\|warn" ) ]]; then
echo "ERROR!!!"
else
echo "OK!!!"
fi