我有这个 bash 脚本:
while [[ 1 ]] ; do sleep 3600 ; ./notify.sh --text "ricordati di bere" && play /mnt/musica/login.wav && zenity --info --text="<span size=\"xx-large\">Time is $(date +%Hh%M).</span>\n\nricordati di <b>bere</b>." --title="drink time" ; done
我想执行这个脚本(从 8:00 点,不太重要)到 19:00(最重要);这是可能的?
我见过at
命令,但我没有找到如何设置“直到”或“之前”。
这个问题不同于这
答案1
您可以使用 cron 进行调度。时间表看起来像
0 8-19 * * * /path/to/script
或者
0 8,9,10,11,12,13,14,15,16,17,18,19 * * * /path/to/script
脚本看起来像
#!/bin/sh
./notify.sh --text "ricordati di bere" &&
play /mnt/musica/login.wav &&
zenity --info \
--text="<span size=\"xx-large\">Time is $(date +%Hh%M)</span>\n\nricordati di <b>bere</b>." \
--title="drink time"
也可以看看 ”如何通过shell脚本每10分钟发送一封邮件?”
答案2
假设你使用 Linux,暂停是最简单的方法。 08:00 到 19:00 是 11 小时,因此我们告诉 timeout 来运行脚本 11 小时。
timeout 11h /home/username/script
在 08:00 使用 cron 启动作业(或者在您愿意的时候手动启动),并在 19:00 整用另一个 cron 条目自动终止它
kill -9 /home/username/script