我尝试使用 launchd 在每个工作日的 06:30 到 10:30 之间每分钟(或 20 秒)运行一次脚本。我现在每分钟/X 秒运行一次脚本,但我不知道如何将其限制为两个定义时间之间的工作日。
问题在两个时间之间每 5 分钟运行一次 cron 任务给出 cron 的答案,但我想使用 launchd 做同样的事情。
我该怎么做呢?
答案1
StartCalendarInterval
也可以是这样的字典数组:for w in {1..5}; do for h in {6..11}; do echo "<dict><key>Weekday</key><integer>$w</integer><key>Hour</key><integer>$h</integer><key>Second</key><integer>0</integer></dict>"; done; done | pbcopy
。
您还可以每分钟运行一次脚本,但根据时间或日期退出:
weekday=$(date +%u)
hour=$(date +%-H)
min=$(date +%-M)
[ $weekday -ge 6 ] && exit
[ $hour -le 5 -o $hour -eq 6 -a $min -le 29 ] && exit
[ $hour -ge 11 -o $hour -eq 10 -a $min -ge 31 ] && exit