运行 mac osx 来自 cronjob 的命令

Running mac osx commands from cronjob

我的 mac 书中有一个 cronjob(每 10 分钟截图一次),其中 mac osx El Capitan 执行以下命令:

*/10 * * * * cd /Users/userx/Pictures/memes && ./shared.sh

shared.sh 脚本包含以下内容:

#!/bin/bash
_now=$(date +"%m_%d_%Y_%H_%M_%S")
screencapture -x $_now.png

但是当系统执行 cronjob 时我得到这个错误:

./shared.sh: line 3: screencapture: command not found

但是如果我运行直接在终端中shared.sh文件全部执行正确

有什么想法吗??我们可以从 cronjobs 运行 mac osx 命令吗??

screencapture 在 /usr/sbin 中,但 cron 作业的默认 PATH 只是 /usr/bin:/bin,因此找不到。有几种方法可以解决这个问题:

  • 在脚本中使用完整路径(即 /usr/sbin/screencapture -x $_now.png)。
  • 在使用 screencapture(即 PATH=/usr/bin:/bin:/usr/sbin:/sbin)之前在脚本中设置 PATH。
  • 在您的脚本条目之前的 crontab 中设置 PATH(语法与脚本中的语法相同)。