Ich muss überprüfen, ob Tomcat 8 läuft oder nicht. Dazu benutze ich das folgende Skript.centos 7 -eq: unärer Operator erwartet
#!/bin/bash
statuscode=$(wget --server-response http://localhost:8080 2>&1 | awk '/^ HTTP/{print $2}')
if [ $statuscode -eq 200 ]
then
echo "TOMCAT OK"
exit 0
else
echo "TOMCAT CRITICAL"
exit 2
fi
Als ich das Skript auf CentOS laufen 7.
Wenn Tomcat 8 Skript ausgeführt wird dann ohne Fehler ausgeführt wird.
Wenn Tomcat 8 gestoppt dann mit Skript ausgeführt Fehlern folgenden
line 5: [: -eq: unary operator expected
Bitte helfen Sie mir, dieses Problem zu beheben.
werfen Dies liegt daran, '$ statuscode' seltsam mit einem leeren String oder etwas bevölkert zu bekommen. Versuchen Sie zu debuggen, indem Sie die Variable vor der Bedingung 'if' echo'en. – fedorqui
@fedorqui ja wenn tomcat gestoppt $ statuscode ist leer. Wie kann ich damit umgehen? – user3441151
können Sie vorher einen leeren Variablen-Check hinzufügen. –