Nadaj whilepę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ć watchpolecenia do wielokrotnego uruchamiania skryptu. Na przykład prosty zegar w twoim terminalu bash watchmoże wyglądać następująco:
$ watch -t -n1 date +%T
Ta -topcja informuje, watchaby nie wyświetlać tytułu uruchomionego procesu. Zapewnia to czyste wyjście tylko z powtarzanego polecenia. Ta -n1opcja każe zegarkowi powtarzać się co nsekundę. W takim przypadku -n1będą odstępy 1sekundowe. Następnie date +%Tpolecenie 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 whilepętla boolowska tylko przy użyciu rekurencyjnych wywołań funkcji.
(edytuj) Aby mieć na uwadze zasoby twojego komputera, dodałem && waittak, ż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.