Я только нашел, как ждать ввода пользователя. Однако я только хочу сделать паузу, чтобы while true
мой компьютер не зависал.
Я пытался pause(1)
, но это говорит -bash: syntax error near unexpected token '1'
. Как это можно сделать?
Я только нашел, как ждать ввода пользователя. Однако я только хочу сделать паузу, чтобы while true
мой компьютер не зависал.
Я пытался pause(1)
, но это говорит -bash: syntax error near unexpected token '1'
. Как это можно сделать?
Ответы:
Используйте sleep
команду.
Пример:
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.
Можно также использовать десятичные дроби при указании единицы времени; напримерsleep 1.5s
thread.sleep
функции на многих языках программирования @Geremia
И что насчет:
read -p "Press enter to continue"
PAUSE
В Python (вопрос был изначально помечен как Python) необходимо импортировать модуль времени
import time
time.sleep(1)
или
from time import sleep
sleep(1)
Для сценария оболочки это просто
sleep 1
Который выполняет sleep
команду. например./bin/sleep
python -c "import time; time.sleep(1)"
вместо sleep 1
:)
python -c "import time; time.sleep(0.8)"
вместо этого. Но тогда нам нужно учитывать, сколько времени на самом деле занимает запуск python. Вам нужно запустить это: date +%N; python -c "import time; time.sleep(0)"; date +%N
чтобы определить, сколько наносекунд требуется Python для запуска. Но это также включает в себя некоторые накладные расходы от даты запуска. Запустите это, date +%N; date +%N
чтобы найти это накладные расходы. Накладные расходы Python на моей машине были на самом деле ближе к 0,14 секундам. Так я хочу time.sleep(0.86)
.
Я понимаю, что немного опаздываю с этим, но вы также можете вызвать сон и передать время ожидания. Например, если я хотел подождать 3 секунды, я могу сделать:
/bin/sleep 3
4 секунды будут выглядеть так:
/bin/sleep 4
На Mac OSX, сон не занимает минут / и т.д., только секунды. Итак, на две минуты,
sleep 120
Выполнить несколько снов и команд
sleep 5 && cd /var/www/html && git pull && sleep 3 && cd ..
Это будет ждать в течение 5 секунд перед выполнением первого сценария, затем снова будет находиться в спящем режиме в течение 3 секунд, прежде чем он снова изменит каталог.
В сценарии вы можете добавить следующее между действиями, которые вы хотите сделать паузу. Это приостановит процедуру на 5 секунд.
read -p "Pause Time 5 seconds" -t 5
read -p "Continuing in 5 Seconds...." -t 5
echo "Continuing ...."
-t 5
сценарий будет прерван через 5 секунд, а не продолжен, по крайней мере, в соответствии с этой страницей
read -r -p "Wait 5 seconds or press any key to continue immediately" -t 5 -n 1 -s
Чтобы продолжить, когда вы нажимаете любую кнопку
Вы можете заставить его ждать, используя $ RANDOM, генератор случайных чисел по умолчанию. Ниже я использую 240 секунд. Надеюсь, это поможет @
> WAIT_FOR_SECONDS=`/usr/bin/expr $RANDOM % 240` /bin/sleep
> $WAIT_FOR_SECONDS
sleep
! (pause
,wait
илиdelay
имело бы больше смысла и было бы легче запомнить.)