Ich habe einen Bash-Skript, das eine Reihe von Konfigurationsdateien einrichtet und mit dem Block EndeBash: Erneute Versuche in einer Schleife
sudo stop myapp
sleep 10
sudo start myapp
Das ist mir zu localhost:3001
und verwenden Sie die Benutzeroberfläche gehen ermöglicht. Aber aus irgendeinem Grund die App manchmal nicht starten möchte ich es in eine Schleife der Art zu wickeln. Das ist, was ich tat:
set -xe
restart_app() {
sudo stop myapp
sleep 10
sudo start myapp
}
restart_app
for i in {1..10};
do
status=$(curl -Is localhost:3001 | head -1 | awk '{print $2}') # returns 200
if [ -z "$status" ];then
restart_myapp
else
:
fi
done
status
200 zurück, wenn der App auf. Es gibt nichts zurück, wenn es nicht ist. Aber mein Skript dsnt beendet überhaupt und geht einfach für 10 Versuche weiter.
Ich hatte Pause, bis ich auf eine SO Antwort stieß, die sagte Pause ist ähnlich wie ':'. Wie auch immer, auch nach dem Hinzufügen in der Pause läuft das Skript für alle 10 Versuche .... – letsc
Letzter Kommentar bevor Sie offline gehen, fügen Sie 'declare -p status' hinzu, bevor Bedingung und Wert überprüfen. – anubhava
'declare - status =" "' – letsc