Jak wstrzymać skrypt Bash za pomocą polecenia uśpienia Linuksa

Polecenie uśpienia w systemie Linux sprawia, że komputer nie wykonuje żadnych zadań przez określony czas. Choć może to wydawać się nietypowe, czas bezczynności często jest nam potrzebny. W niniejszym artykule przedstawimy, jak efektywnie korzystać z tego polecenia w powłoce Bash.

Użycie polecenia uśpienia jest bardzo proste. W terminalu wystarczy wpisać słowo „sleep”, dodać spację, wpisać liczbę, a następnie nacisnąć Enter.

sleep 5

Po pięciu sekundach kursor powróci na ekran. Co się wydarzyło? Wprowadzenie polecenia uśpienia w terminalu instruuje Bash, aby wstrzymał wszelkie operacje na podany czas, w tym przypadku na pięć sekund.

Czas snu można określić w dniach, godzinach, minutach lub sekundach, stosując odpowiednie sufiksy: d, h, m, s. Aby wstrzymać działanie na jeden dzień, cztery godziny, siedem minut i pięć sekund, użyj poniższego polecenia:

sleep 1d 4h 7m 5s

Sufiks „s” (oznaczający sekundy) jest opcjonalny; jeśli go nie podasz, czas trwania traktowany będzie jako sekundy. Na przykład, jeśli chcesz, aby komputer „spał” przez pięć minut i dwadzieścia sekund, możesz użyć jednego z następujących poleceń:

sleep 5m 20

Jeśli jednak zapomnisz dodać sufiksu „m”, polecenie wstrzyma komputer na pięć sekund, a potem na dwadzieścia sekund, co łącznie daje 25 sekund przerwy.

Chociaż wiele poleceń wymaga określonej kolejności parametrów, polecenie uśpienia jest dość elastyczne. Możesz podawać wartości w dowolnej kolejności, a sleep poprawnie je zinterpretuje. Można również używać liczb zmiennoprzecinkowych. Na przykład, jeśli wpiszesz 0.5 godziny, oznacza to, że chcesz, aby komputer „spał” przez pół godziny.

Poniżej znajdują się różne (coraz bardziej nietypowe) przykłady poleceń, które wszystkie nakazują komputerowi „spaść” na 10 sekund:

sleep 10
sleep 5 5s
sleep 1 1 1s 1 1 1s 1 2
sleep 0.16667m

Użycie uśpienia do wstrzymania przed wykonaniem innego polecenia

Polecenie uśpienia można zastosować także do opóźnienia wykonania innego polecenia. Przykładowo, poniższe polecenie zatrzyma proces na 15 sekund, a następnie wyda sygnał dźwiękowy:

sleep 15 && echo -en '

newsblog.pl