2015-06-03 2 views
-3

Я хотел бы знать, как я могу запустить скрипт, который будет запускать команду на моем ПК, если время равно x. Я слышал о команде at и некоторых других, но я пытаюсь сделать мой немного уникальным.Сценарий для запуска команды в 10 часов

Проблема заключается в том, что когда я пытаюсь выполнить свой сценарий, когда мой компьютер включен, и я запускаю его, он проверяет час, но если я включу свой компьютер на x: 36 или что-то в этом роде, то мое обновление произойдет через час после x, но с 36 минутами, пожалуйста, пожалуйста!

Мой сценарий

time="$(date +%H)" 
echo $time 
if [ $time != "22" ]; then 
    sleep 1h 
else 
    zenity --title="asdf" --text="asdf" --info 
fi 
+7

Читайте на cron/at, но зачем изобретать колесо –

+0

Спасибо, crontab был именно тем, что мне нужно :) благодаря другим ответам тоже! –

ответ

0

Если вы хотите запустить команду в 22:00 только, выходной и сравнить оба часа и минуты:

time=$(date +%H:%M) 
if [ $time != 22:00 ] ; then 
    sleep 58 
... 
+0

'sleep 60' не может спать _exactly_ 60 секунд - он может спать больше, он может спать меньше. Опасность отсутствия окна в сильно загруженной системе не кажется идеальной. –

0

Вы не хотите спать 1 час, вы хотите спать до 2200. С GNU date вы можете использовать

now=$(date +%s) 
t=$(date +%s --date 2200) 
sleep "$now" 
zenity --title="asdf" --text="asdf" --info 
Смежные вопросы