Znalazłem tylko, jak czekać na dane wejściowe użytkownika. Chcę jednak tylko zatrzymać, aby while truekomputer nie zawiesił się.
Próbowałem pause(1), ale mówi -bash: syntax error near unexpected token '1'. Jak można to zrobić?
Znalazłem tylko, jak czekać na dane wejściowe użytkownika. Chcę jednak tylko zatrzymać, aby while truekomputer nie zawiesił się.
Próbowałem pause(1), ale mówi -bash: syntax error near unexpected token '1'. Jak można to zrobić?
Odpowiedzi:
Użyj sleeppolecenia.
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
thread.sleepfunkcję w wielu językach programowania @Geremia
A co z:
read -p "Press enter to continue"
PAUSE
W Pythonie (pytanie było pierwotnie oznaczone Pythonem) musisz zaimportować moduł czasu
import time
time.sleep(1)
lub
from time import sleep
sleep(1)
Ponieważ skrypt powłoki jest po prostu
sleep 1
Który wykonuje sleeppolecenie. na przykład./bin/sleep
python -c "import time; time.sleep(1)"zamiast sleep 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 +%Naby 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 +%Naby 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ć:
/bin/sleep 3
4 sekundy wyglądałyby tak:
/bin/sleep 4
W Mac OSX uśpienie nie zajmuje minut / etc, tylko sekundy. Więc przez dwie minuty
sleep 120
Uruchom wiele snu i poleceń
sleep 5 && cd /var/www/html && git pull && sleep 3 && cd ..
Poczeka to 5 sekund przed wykonaniem pierwszego skryptu, a następnie ponownie zasypi przez 3 sekundy, zanim ponownie zmieni katalog.
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.
read -p "Pause Time 5 seconds" -t 5
read -p "Continuing in 5 Seconds...." -t 5
echo "Continuing ...."
-t 5to przerwie skrypt po 5 sekundach, nie będzie kontynuowane, przynajmniej według tej strony
read -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
Możesz sprawić, że zaczeka, używając $ RANDOM, domyślnego generatora liczb losowych. Poniżej używam 240 sekund. Mam nadzieję, że pomaga @
> WAIT_FOR_SECONDS=`/usr/bin/expr $RANDOM % 240` /bin/sleep
> $WAIT_FOR_SECONDS
sleep! (pause,waitlubdelaybyłoby bardziej sensowne i łatwiejsze do zapamiętania.)