Как приостановить мою оболочку script на секунду, прежде чем продолжить?

Я только нашел, как ждать ввода пользователя. Тем не менее, я только хочу сделать паузу, чтобы мой while true не разбивал мой компьютер.

Я попробовал pause(1), но он говорит -bash: syntax error near unexpected token '1'. Как это можно сделать?

Ответ 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

Ответ 2

В Python (вопрос был первоначально помечен Python) вам нужно импортировать модуль времени

import time
time.sleep(1)

или

from time import sleep
sleep(1)

Для оболочки script есть просто

sleep 1

Выполняет команду sleep. например. /bin/sleep

Ответ 3

А как насчет:

read -p "Press enter to continue"

Ответ 4

Я понимаю, что я немного опоздал с этим, но вы также можете вызвать сон и передать время ожидания. Например, если бы я хотел подождать 3 секунды, я могу сделать:

/bin/sleep 3

4 секунды будут выглядеть так:

/bin/sleep 4

Ответ 5

В Mac OSX сон не занимает минуты/и т.д., только секунды. Итак, в течение двух минут,

sleep 120

Ответ 6

Внутри script вы можете добавить следующее между действиями, которые вы хотели бы сделать паузой. Это приостановит процедуру в течение 5 секунд.

read -p "Pause Time 5 seconds" -t 5
read -p "Continuing in 5 Seconds...." -t 5
echo "Continuing ...."

Ответ 7

Запуск нескольких спящих и команд

sleep 5 && cd /var/www/html && git pull && sleep 3 && cd ..

Это будет ждать 5 секунд перед выполнением первого скрипта, а затем снова будет спать в течение 3 секунд, прежде чем он снова изменит каталог.

Ответ 8

read -r -p "Wait 5 seconds or press any key to continue immediately" -t 5 -n 1 -s

Чтобы продолжить, когда вы нажимаете любую кнопку

Ответ 9

Мне было интересно, если добавить в сценарий bash паузу оператора, пока файл существует. Затем, создав такой файл, вы можете управлять запуском.

while [ YOUR CONDITION ]; do
    while [ -f <folder>/<file> ]; do 
        sleep 30
    done
    DO YOUR JOB...
done

Таким образом, в каждом цикле скрипт сначала ищет файл, и если такой файл существует, он продолжает ждать, пока вы не удалите файл. Затем вы можете создать файл в любое время, чтобы приостановить выполнение сценария. Это смешно?

Я ценю комментарии/предложения/исправления/издания. Спасибо

Ответ 10

Вы можете заставить его ждать, используя $ RANDOM, генератор случайных чисел по умолчанию. Ниже я использую 240 секунд. Надеюсь, это поможет @

> WAIT_FOR_SECONDS='/usr/bin/expr $RANDOM % 240' /bin/sleep
> $WAIT_FOR_SECONDS