по крайней мере, ты попытался.
Я согласен, что это, скорее всего, проблема окружающей среды, и лучший способ увидеть, с какой средой вы действительно работаете, - это захватывать среды в файлы, а затем дифференцировать их .. add
set > /tmp/myEnvrionrment.$$
сразу после
. ~/.bash_profile
edit
(том .$$
переменная, добавленная к имени файла / tmp, является переменной оболочки для "текущего идентификатора процесса" и, следовательно, является относительно уникальным номером, что должны быть разные для каждого раз, когда вы запускаете ваш скрипт.J)
запустить скрипт из командной строки, затем из cron
затем
diff /tmp/myEnvrionemnt.*
предполагая, что там только два файла, в противном случае, посмотрите на метки времени на этих файлах и удалите другие, чтобы у вас было только 2 файла, 1 из которых представляет запуск командной строки, а другой из запуска crontab.
as set
показывает локальные переменные (которые должны включать экспортированные переменные), это должно работать. Если вы получаете одинаковые списки в обоих выходных файлах набора, а затем попробуйте
export > /tmp/myExportedVars.$$
как и выше, и попробовать сравниваете их.
посмотрите не только на PATH, но и на LD_* vars и LANG vars.
IHTH