cron
не устанавливает среду для вас при запуске кода, поэтому переменная среды $CARSPATH
не существует. Я предлагаю только запускать сценарии оболочки из cron, настраивать среду внутри сценария оболочки и затем запускать программу, которую вы действительно хотели запустить.
пример сценария оболочки:
#!/bin/bash
source ~username/.bash_profile
cd ~username
./script.pl
Если вы используете ksh
или sh
, вам может потребоваться сказать
#!/bin/sh
. ~username/.profile
cd ~username
./script.pl
Не забудьте заменить имя пользователя вашим именем в системе. Кроме того, если скрипт не находится в вашем домашнем каталоге, вы захотите выполнить его с указанием пути к нему, а не ./
.
Вы говорите source
, или интервал, чтобы загрузить данный сценарий оболочки в текущую оболочку. Вы загружаете его в текущую оболочку, чтобы любые параметры среды оставались в текущей оболочке.
~/.bash_profile
, ~/.bashrc
, ~/.profile
, /etc/profile
и т. Д. - все файлы, которые обычно содержат настройки среды. Какой из них вы используете, сильно зависит от вашей ОС и от того, кто ее настроил.