Nadaj while
pętli warunek logiczny, taki jak:
#!/bin/bash
while true; do
do_something && wait
done
Będzie to wykonywane w kółko, dopóki bash nie otrzyma sygnału do zakończenia procesu. Zwykle w formie ctrl+c
.
Możesz także użyć watch
polecenia do wielokrotnego uruchamiania skryptu. Na przykład prosty zegar w twoim terminalu bash watch
może wyglądać następująco:
$ watch -t -n1 date +%T
Ta -t
opcja informuje, watch
aby nie wyświetlać tytułu uruchomionego procesu. Zapewnia to czyste wyjście tylko z powtarzanego polecenia. Ta -n1
opcja każe zegarkowi powtarzać się co n
sekundę. W takim przypadku -n1
będą odstępy 1
sekundowe. Następnie date +%T
polecenie pokazuje czas w momencie zakończenia polecenia. Wykonanie tego polecenia da ci aktywny zegar w twoim terminalu.
I jeszcze jedna metoda, której nie ma w żadnej innej odpowiedzi, byłaby nieskończonym wywołaniem funkcji.
do_something() { do_something }; do_something && wait
Jest to w zasadzie to samo, co while
pętla boolowska tylko przy użyciu rekurencyjnych wywołań funkcji.
(edytuj) Aby mieć na uwadze zasoby twojego komputera, dodałem && wait
tak, że za każdym razem, gdy proces jest uruchamiany, pętle będą „czekać”, aż proces zakończy się ze statusem wyjścia 0 przed następną iteracją. Jest to przydatne w interaktywnym skrypcie powłoki.