2

при добавлении env varialbes вроде:

экспорт JAVA_HOME =/usr/java/skd/bin

где это хранится, если я хочу изменить его позже? это где-то файл?

2 ответа2

4

При экспорте переменной среды она не сохраняется ни в какой энергонезависимой памяти, такой как жесткий диск или что-то подобное. Он запоминается только оболочкой, более того, только в той оболочке, в которой вы запускали эту команду, либо вручную, либо с помощью скрипта. Таким образом, ответ на ваш первый вопрос может быть «он хранится только в памяти, локальной для запущенной оболочки». Конечно, все, что вы запустите из оболочки, унаследует ее среду.

Если вы хотите изменить значение переменной среды, просто запустите export снова с тем же именем переменной, как export JAVA_HOME=/usr/other_java/bin .

Как отмечал taspeotis , если вы хотите, чтобы переменная окружения восстанавливалась в каждом приложении, запущенном без необходимости вводить его вручную, вы можете использовать ~/.MacOSX/environment.plist .

Если вы хотите, чтобы он был установлен только в окнах терминала, вы можете добавить команду export (как если бы вы вводили ее в оболочку) в конец файла ~/.bashrc (оболочка расширяется до ~ вашего домашнего каталога).

1

где это хранится, если я хочу изменить его позже?

Что вы имеете в виду редактировать это позже? Экспортируйте это снова. Не должно иметь значения, где оно хранится, я думаю, что реализация может зависеть от оболочки, возможно, оболочка выполняет кэширование переменных. Может быть, это не так. В любом случае, вы можете читать и записывать переменные окружения в оболочке, поэтому я не могу представить, зачем вам нужен этот файл.

export KEY=VALUE1

...

export KEY=VALUE2

Для записи файл ~/.MacOSX/environment.plist , как здесь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .