Geben Sie einer whileSchleife eine boolesche Bedingung wie folgt:
#!/bin/bash
while true; do
do_something && wait
done
Dies wird immer wieder ausgeführt, bis die Bash ein Signal zum Beenden des Prozesses erhält. Normalerweise in Form von ctrl+c.
Sie können den watchBefehl auch verwenden , um ein Skript wiederholt auszuführen. Zum Beispiel könnte eine einfache Uhr in Ihrem Bash-Terminal folgendermaßen watchaussehen:
$ watch -t -n1 date +%T
Die -tOption gibt watchan, dass kein Titel des ausgeführten Prozesses angezeigt werden soll. Dadurch erhalten Sie eine saubere Ausgabe nur des Befehls, der wiederholt wird. Die -n1Option weist die Uhr an, sich alle nSekunden zu wiederholen . In diesem Fall -n1werden Intervalle von 1Sekunden sein. Dann date +%Tzeigt der Befehl die Zeit zum Zeitpunkt der Befehlsbeendigung an. Durch Ausführen dieses Befehls erhalten Sie eine aktive Uhr in Ihrem Terminal.
Und dann wäre eine weitere Methode, die in keiner der anderen Antworten enthalten ist, ein unendlicher Funktionsaufruf.
do_something() { do_something }; do_something && wait
Dies ist im Wesentlichen dasselbe wie die Boolesche whileSchleife, die nur rekursive Funktionsaufrufe verwendet.
(Bearbeiten) Um die Ressourcen Ihres Rechners im Auge zu behalten, habe ich die hinzugefügt, && waitdamit jedes Mal, wenn ein Prozess ausgeführt wird, die Schleifen "warten", bis dieser Prozess mit dem Beendigungsstatus 0 endet, bevor die nächste Iteration erfolgt. Dies ist in einem interaktiven Shell-Skript nützlich.