結論
crontab に
SHELL=/bin/bash
と書くことで、シェルが bash に切り替わり、source コマンドが使えるようになる。
参考
- How to change cron shell (sh to bash)? - Unix & Linux Stack Exchange crontab 内でシェルを切り替える方法
- crontabの環境変数PATHについて調べてみた · DQNEO起業日記 PATHも状況によっては変更したほうがいいかも
- Linux - cron での locale の挙動! - mk-mode BLOG 文字コードも。
- cron力をつけよう!全てのcrontab入門者に贈る9個のテクニック · DQNEO起業日記 そのほか cron 一般の話も参考に。
- 14.04 - 'source' builtin in bash not recognized in cron environment - Ask Ubuntu そもそも source コマンドが使えない理由
- [Ubuntu][Shell]Ubuntuの/bin/shでsourseコマンドが効かない件 | aoshiman.org 直接は関係ないが、つまり sh を使う環境一般で source コマンドは使えないということは覚えておいて損はない。
- sourceコマンドとbashコマンドについて - こんにちは。現在Linux初心者でコマン... - Yahoo!知恵袋 source コマンドは同じプロセスで動くので環境変数の変更などが可能だが、bash コマンドは別プロセスで動くのでスクリプトで環境変数を設定しても元のプロセスに影響しない。
- scripts - What is the difference between "source" and "." in bash? - Ask Ubuntu bash 下においては
.
コマンドとsource
コマンドは全く同一 - crontabがどうしても動かないときに確認すべき3つの点+α - ドキッ!はてなブログに移転しました! cron が動かないときの問題の切り分けについて
- コンソールで叩くと動くスクリプトがCronで動かない時 – ひげろぐ 特に cron の実行の時点で問題が生じている場合