У меня возникла проблема с тем, что мой 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
файл, вам необходимо указать его в своем скрипте.
Простое выполнение сценария не включает экспортированные переменные.