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