通配符 * 不会在 crontab 中展开,而是从终端运行

JSR*_*JSR 5 bash cron wildcard

我试图通过 crontab 从 bash 脚本运行这个命令,它只得到 SystemOut.log,尽管我希望也得到 SystemOut_* 。

/app/hdup/get_logs SystemOut*
Run Code Online (Sandbox Code Playgroud)

但是当我尝试从终端运行上面的命令时,它工作正常并获得了 SystemOut.log 和 SystemOut_*

知道可能出了什么问题吗?

Fab*_*ian 5

正如评论中已经指出的:cron使用的 shell 与您使用的不同。您可以通过顶部的变量设置 cron 使用的 shell,crontab以获得与终端中相同的结果:

SHELL=/bin/bash

详细信息请参见https://serverfault.com/a/678414