我的脚本中有以下代码:
mapfile results < <(mysql --batch -u $DB_USERNAME -p$DB_PASSWORD $DB_DATABASE < query.sql)
如果从命令行运行它工作正常。但如果从/var/spool/cron/root
then变量运行,则$results
变量不包含任何内容。
为什么以及如何解决?
答案1
由于行command
的部分crontab
是用 解释的/bin/sh
,它支持更简单的语法,因此您必须将命令包装在bash
脚本中,并从command
部分调用该脚本。
此外,您的环境变量(DB_*
、PATH
)和mysql
设置必须小心地手动传播到您的cron
环境。