私のスクリプトには次のコードがあります。
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
。