Я создаю bashscript для установки небольшого приложения, которое я пишу. Часть той установки требует установки переменной среды так, чтобы другие процессы могли сослаться на нее.
Мой простой тест сценария оболочки похож на это:
#!/bin/sh
export FOO=abc
Я понимаю почему FOO
не будет видимо после того, как сценарий будет выполняться, если сделано как так:
$ sh script.sh
и почему это сделает это видимым:
$ source script.sh
таким образом, это - обходное решение, но я задаюсь вопросом, как общие сценарии установки делают это - например, я - вполне уверенные установщики как mysql, и т.д. устанавливают глобальные переменные среды.
Что правильный путь состоит в том, чтобы сделать это? Я предполагаю, что могу попросить, чтобы мои пользователи установили путем выполнения:
$ source script.sh
но не уверенный, если существует лучший путь.
Спасибо
Добавьте эти строки к своему сценарию. Ваш сценарий должен иметь root
доступ.
echo 'export FOO=abc' > /etc/profile.d/foo.sh
Следующий перезапуск это будет доступно.