Добавление /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,

Другие вопросы по тегам