从 cron 脚本运行时找不到“/usr/bin/env bash”

sni*_*tko 1 bash cron computing-environment

我的 crontab 中有这个:

PATH=/usr/bin:/usr/local/bin:$PATH
*/1 * * * * /usr/bin/env bash > ~/cron.log 2>&1
Run Code Online (Sandbox Code Playgroud)

中的输出cron.log如下:

/usr/bin/env bash: No such file or directory
Run Code Online (Sandbox Code Playgroud)

/usr/bin/env以及/bin/bash两者都存在。我还可以从该 crontab 所属的同一用户运行此命令,不会出现任何错误。我也尝试添加

SHELL=/bin/bash
Run Code Online (Sandbox Code Playgroud)

到 crontab 的顶部。没有效果。不知道发生了什么事。还有这个:

*/1 * * * * which bash > ~/cron.log 2>&1
Run Code Online (Sandbox Code Playgroud)

日志文件中根本没有显示任何内容。这就是我在 crontab 中为该用户提供的所有内容,仅此而已。

Ben*_*ebe 5

由于运行的脚本cron#!/usr/bin/env bash(对吗? ) 开头,因此您需要做的就是crontab

*/1 * * * * /path/to/script > ~/cron.log 2>&1
Run Code Online (Sandbox Code Playgroud)

并确保脚本实际输出一些内容;如果您的脚本完全安静,您的日志文件将为空。