Добавление /etc/environment приводит к сбою bash
На RHEL 6.7 я добавил файл /etc/environment:
JAVA_HOME="/opt/jdk1.8.0_91"
JRE_HOME="{JAVA_HOME}/jre"
M2_HOME="/usr/local/apache-maven"
M2="{M2_HOME}/bin"
PATH="{JAVA_HOME}/bin:{JRE_HOME}/bin:{M2}:{PATH}"
Теперь при входе в систему bash выдает следующие ошибки:
-bash: id: command not found
-bash: id: command not found
-bash: id: command not found
-bash: uname: command not found
Удаление или переименование / etc / environment устраняет проблему.
Примечание: я не хочу использовать /etc/profile, потому что я хочу, чтобы эти настройки были доступны для неинтерактивных оболочек.
1 ответ
/etc/environment
не выполняет расширение переменной. Таким образом, ваш PATH
сейчас буквально {JAVA_HOME}/bin:{JRE_HOME}/bin:{M2}:{PATH}
что не сработает конечно.
Если вы используете bash
только, вы можете посмотреть в настройках $BASH_ENV
в /etc/environment
вот так:
BASH_ENV=/etc/non-inter-test
где /etc/non-inter-test
затем читается и выполняется неинтерактивными оболочками (и только теми, поэтому вы должны ссылаться на тот же файл в /etc/profile
для интерактивных оболочек) и может содержать то, что сейчас в вашем /etc/environment
,