Znalazłem tylko, jak czekać na dane wejściowe użytkownika. Chcę jednak tylko zatrzymać, aby while true
komputer nie zawiesił się.
Próbowałem pause(1)
, ale mówi -bash: syntax error near unexpected token '1'
. Jak można to zrobić?
Użyj sleep
polecenia.
Przykład:
sleep .5 # Waits 0.5 second.
sleep 5 # Waits 5 seconds.
sleep 5s # Waits 5 seconds.
sleep 5m # Waits 5 minutes.
sleep 5h # Waits 5 hours.
sleep 5d # Waits 5 days.
Można również stosować ułamki dziesiętne, określając jednostkę czasu; na przykładsleep 1.5s
sleep
! (pause
,wait
lubdelay
byłoby bardziej sensowne i łatwiejsze do zapamiętania.)thread.sleep
funkcję w wielu językach programowania @GeremiaA co z:
źródło
PAUSE
W Pythonie (pytanie było pierwotnie oznaczone Pythonem) musisz zaimportować moduł czasu
lub
Ponieważ skrypt powłoki jest po prostu
Który wykonuje
sleep
polecenie. na przykład./bin/sleep
źródło
python -c "import time; time.sleep(1)"
zamiastsleep 1
:)python -c "import time; time.sleep(0.8)"
zamiast tego. Ale potem musimy wziąć pod uwagę, ile faktycznie trwa uruchamianie Pythona. Musisz uruchomić to:date +%N; python -c "import time; time.sleep(0)"; date +%N
aby określić, ile nanosekund zajmuje python, aby rozpocząć. Ale obejmuje to również pewne koszty ogólne od daty uruchomienia. Uruchom to,date +%N; date +%N
aby znaleźć to narzut. Obciążenie Pythona na mojej maszynie było faktycznie bliższe 0,14 sekundy. Więc chcętime.sleep(0.86)
.Zdaję sobie sprawę, że trochę się z tym spóźniam, ale możesz także zadzwonić do snu i przekazać niespokojny czas. Na przykład, jeśli chcę poczekać 3 sekundy, mogę zrobić:
4 sekundy wyglądałyby tak:
źródło
W Mac OSX uśpienie nie zajmuje minut / etc, tylko sekundy. Więc przez dwie minuty
źródło
Uruchom wiele snu i poleceń
Poczeka to 5 sekund przed wykonaniem pierwszego skryptu, a następnie ponownie zasypi przez 3 sekundy, zanim ponownie zmieni katalog.
źródło
W skrypcie możesz dodać następujące czynności między czynnościami, które chcesz wstrzymać. Spowoduje to wstrzymanie rutyny na 5 sekund.
źródło
-t 5
to przerwie skrypt po 5 sekundach, nie będzie kontynuowane, przynajmniej według tej stronyread -r -p "Wait 5 seconds or press any key to continue immediately" -t 5 -n 1 -s
Aby kontynuować po naciśnięciu dowolnego przycisku
źródło
Możesz sprawić, że zaczeka, używając $ RANDOM, domyślnego generatora liczb losowych. Poniżej używam 240 sekund. Mam nadzieję, że pomaga @
źródło
użyj pułapki, aby zatrzymać i sprawdzić linię poleceń przed uruchomieniem
Naciśnij dowolny klawisz, aby kontynuować
źródło