如何仅按计划启动应用程序?

如何仅按计划启动应用程序?

我希望只在上班时启动 Slack(基本上是工作日上午 10:00 到下午 18:00)。我并不想编写自定义脚本,我想以更好的方式检查这一点,例如:

这里

但是如何做呢?我的第一种方法是使用 cron 的 @reboot 和日期 - 看起来不太可能。其次,我尝试搜索工具,您可以以 crontab 格式传递测试字符串并返回错误代码 1 或 0 - 但这里没有运气。

您能给我指明正确的方向吗?

答案1

该命令date +%u将以数字形式输出星期几。该命令date +%k将以 24 小时格式输出当前小时。我们可以使用命令替换$()和 bash 双括号测试[[来创建适当的条件:

bash -c '[[ $(date +%u) == [1-5] && $(date +%k) == 1[0-7] ]] && /path/executable'
  • [1-5]- 是描述一周工作日的正则表达式。
  • 1[0-7]- 是描述工作时间的正则表达式,它将涵盖从 10:00 到 17:59。

  • /path/executable是您想要运行的命令/应用程序的概要。

  • 在表达式中[[ <condition-1> && <condition-2> ]],逻辑与&&意味着两个条件都必须满足。

根据问题,您可以在crontab或启动应用程序中使用上述命令。对于几个原因我更愿意使用启动应用程序

相关内容