Я желаю знать, что действительно ли возможно иметь сон в сценарии удара, имеют переменное время, которое читается из файла? Я желаю выполнить операции в сценарии, которые варьируются по длине, которой установит синхронизации другой сценарий.
Спать число секунд, определенных в timeout.txt
файл:
#!/bin/sh
read timeout <timeout.txt
date
sleep $timeout
date
Или использование bash
- определенный синтаксис:
#!/bin/bash
date
sleep $(<timeout.txt)
date
Обычно это - просто вопрос получения информации в Ваш сценарий, не так о команде сна.
Позволяет, делают простой сценарий 'sleepytime' для получения информации из файла (я предполагаю, что существует всего одно целочисленное значение в том файле):
#!/bin/bash
sleep_time_X=$(cat "X.sleepytime")
sleep_time_Y=$(cat "Y.sleepytime")
echo "Going to sleep $sleep_time_X second(s)"
sleep $sleep_time_X
echo "Going to sleep $sleep_time_Y second(s)"
sleep $sleep_time_Y
тогда на командной строке:
$ touch Y.sleepytime
$ touch X.sleepytime
$ echo "1" > X.sleepytime
$ echo "2" > Y.sleepytime
$ ./sleepytime
Going to sleep 1 second(s)
Going to sleep 2 second(s)
, Но кажется, что это не вообще применимый подход. Время сна могло бы зависеть от факторов за пределами нашего управления (например, сетевые запросы, загрузки и т.д.). Тогда было бы предпочтительно ожидать, пока задание не сделано. Это может быть выполнено с эти wait
команда. Давайте сделаем дополнительный сценарий, который называет наш сценарий сна сверху:
#!/bin/bash
# Call the sleep script and send it to background (with '&')
./sleepytime &
echo "Waiting for sleepyhead"
wait
вывод:
Waiting for sleepyhead
Going to sleep 1 second(s)
Going to sleep 2 second(s)
Примечание, которого вывод первого сценария прибывает после "Ожидания...". Возможно, это - опция для Вас...