Я недавно обнаружил /etc/environment
, что кажется более стандартным способом установки простых переменных среды, чем сценарии, но мне было интересно, есть ли способ обратной ссылки на переменные среды в файле / etc / environment.
То есть у меня есть это:
JAVA_HOME="/tools/java"
GRAILS_HOME="/tools/grails"
GROOVY_HOME="/tools/groovy"
GRADLE_HOME="/tools/gradle"
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
Однако, если я пытаюсь добавить $JAVA_HOME/bin
определение PATH, я получаю $ JAVA_HOME / bin, а не интерполированную переменную. Чтобы исправить это, я создаю environment.sh в profile.d, чтобы добавить /bin
записи в путь, но это кажется неаккуратным и неорганизованным.
Есть ли способ обратной ссылки на переменные окружения в / etc / environment?
источник
/etc/environment
, я прибегнул к вам/etc/profile
, спасибо за ваше предложение.Документация Ubuntu делает это невозможным. НО, есть ответ.
ОТВЕТ . Создайте постоянные общесистемные переменные среды в
/etc/.bashrc
Подробности:
Вот еще некоторые подробности из документации переменных среды .
Официальная рекомендация - использовать
/etc/environment
, как вы уже пробовали. Проблема в том, что этот файл не является файлом сценария. Другими словами, вы не можете использовать переменные в объявлениях переменных.Документация продолжается с 2 другими файлами "Не рекомендуется"
/etc/profile
и/etc/bash.bashrc
./etc/profile
msgstr "делает чуть больше, чем вызывает файл /etc/bash.bashrc". Так что вместо этого выберите/etc/bash.bashrc
потому что «Ubuntu по умолчанию настроен на выполнение этого файла каждый раз, когда пользователь входит в оболочку или среду рабочего стола».источник