mac, додаючи змінні середовища за допомогою "експорту ABC = / var / blah / де це зберігається?


2

при додаванні env varialbes типу:

експортувати JAVA_HOME = / usr / java / skd / bin

де це зберігається, якщо я хочу його відредагувати пізніше? це файл десь?

Відповіді:


4

Коли ви експортуєте змінну середовища, вона не зберігається в будь-якій енергонезалежній пам'яті, як жорсткий диск чи інший. Він запам'ятовується лише оболонкою, крім того, тільки в оболонці, в яку ви запустили цю команду, вручну або зі сценарієм. Таким чином, відповідь на ваше перше запитання може бути "вона зберігається лише в пам'яті, локальній для запущеної оболонки". Звичайно, все, що ви запустите з оболонки, успадковуватиме її оточення.

Якщо ви хочете змінити значення змінної середовища, просто запустіть exportще раз те саме ім'я змінної, як export JAVA_HOME=/usr/other_java/bin.

Як taspeotis зазначив , якщо ви хочете , щоб змінна середовища повинні бути відновлені в кожному додатку запущено без необхідності вводити його вручну, ви можете використовувати в ~/.MacOSX/environment.plistфайл.

Якщо ви хочете, щоб вона була встановлена ​​лише у вікнах терміналів, ви можете додати exportкоманду (як ви введете її в оболонку) до кінця ~/.bashrcфайлу (оболонка розширюється ~до домашнього каталогу).


1
Або: якщо значення потрібні лише у терміналі, додайте exportдо цього файлу ~/.bash_profile(якщо використовуватиметься Bash у терміналі за замовчуванням).
Ар'ян

@Arjan +1, спасибі, розширена відповідь.
whitequark

1

де це зберігається, якщо я хочу його відредагувати пізніше?

Що ви хочете відредагувати пізніше? Експортуйте його знову. Не має значення, де він зберігається, я думаю, що реалізація може бути специфічною для оболонки, можливо, оболонка виконує кешування змінних. Можливо, це не так. У будь-якому випадку ви можете читати і записувати змінні середовища в оболонці, тому я не можу уявити, для чого вам потрібен цей файл.

export KEY=VALUE1

...

export KEY=VALUE2

Для запису файл є таким ~/.MacOSX/environment.plist, як описано тут .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.