Назад | Перейти на главную страницу

Запустите bash_profile в задании cron

У меня возникла проблема с тем, что мой cron-скрипт не загружал переменные среды, поэтому я добавил следующую строку:

#!/bin/sh
bash /root/.bash_profile

Похоже, что это не имеет никакого эффекта, и переменные пути устанавливаются неправильно. Как запустить скрипт bash_profile

bash /root/.bash_profile создаст новый bash процесса, запустите этот файл (и я предполагаю, что при этом установите ваши переменные env), а затем выйдите, взяв с собой эти недавно установленные переменные env.

Пытаться . /root/.bash_profile. Или source /root/.bash_profile. Это выполнит файл в текущем процессе bash, поэтому ваши переменные env будут доступны для текущего процесса.

Вы также можете использовать #!/bin/bash вместо того #!/bin/sh если вы собираетесь выполнять вызовы в стиле bash.

. /root/.bash_profile или source /root/.bash_profile. который говорит запустить этот файл в текущей оболочке. Ваш метод работает .bash_profile в подоболочке s, которая устанавливает переменные в подоболочке, затем эта подоболочка закрывается, забирая с собой эти переменные.

Если вы хотите включить переменные в .bash_profile файл, вам необходимо указать его в своем скрипте.

Простое выполнение сценария не включает экспортированные переменные.