Как добавить переменные среды?

167

Я запускаю Ubuntu 11.04. Я использую терминал для запуска сеанса bash, и я хочу добавить переменную среды:

[email protected]:~$ env THEVAR=/example

Но это не работает. Он показывает, что все переменные с THEVAR являются последними, но другой вызов env больше не показывает THEVAR - env | grep THEVAR ничего не возвращает.

Аналогично, сценарии с экспортом ( export THEVAR=/example ) или другие назначения переменных ( THEVAR=/example ) не добавляют переменную среды.

Я знаю, что я делаю что-то неправильно, я знаю, что это должно быть что-то простое, но я просто не могу найти что.

UPDATE: Реальный смысл моего вопроса заключался в следующем: Ссылка

(Во всяком случае, я выберу самый проголосовавший ответ и оставлю отредактированный заголовок - это не то, что я просил)

env запускает программу в измененной среде, а затем отклоняет все изменения.

    
задан huff 27.08.2011 в 02:22
источник

4 ответа

270

Чтобы установить переменную только для текущей оболочки:

VARNAME="my value"

Чтобы установить его для текущей оболочки и всех процессов , запущенных из текущей оболочки:

export VARNAME="my value"      # shorter, less portable version

Чтобы установить его навсегда для всех будущих сессий bash, добавьте такую ​​строку в ваш файл .bashrc в вашем каталоге $HOME .

Чтобы установить его навсегда и в системе (все пользователи, все процессы), добавьте заданную переменную в / etc / environment:

sudo -H gedit /etc/environment

Этот файл принимает только присваивания переменных, например:

VARNAME="my value"

Не используйте здесь ключевое слово export .

Вам нужно выйти из текущего пользователя и снова войти в систему, чтобы изменения переменных среды происходили.

    
ответ дан Michał Šrajer 27.08.2011 в 09:50
источник
19

Чтобы установить переменную среды один раз, используйте команду export в приглашении, а не в сценарии оболочки:

$ export THEVAR=/example

Переменная будет установлена ​​для остальной части сеанса оболочки или до ее отмены.

Чтобы каждый раз устанавливать переменную окружения, используйте команду export в файле .bashrc (или соответствующий файл инициализации для вашей оболочки).

Чтобы установить переменную среды из сценария, используйте команду export в скрипте, а затем source скрипта. Если вы выполните скрипт, это не сработает.

Для объяснения различия между поиском и выполнением см. этот ответ: Ссылка

    
ответ дан lesmana 27.08.2011 в 09:20
14

Чтобы постоянно добавлять новую переменную среды в Ubuntu (протестировано только в 14.04), выполните следующие действия:

  1. Откройте терминал (нажав Ctrl Alt T )
  2. sudo -H gedit /etc/environment
  3. Введите свой пароль
  4. Отредактируйте только что открытый текстовый файл:
    например если вы хотите добавить FOO=bar , то просто напишите FOO=bar в новой строке
  5. Сохранить
  6. После сохранения, выхода и входа снова.
  7. Ваши требуемые изменения сделаны.
ответ дан user355501 07.12.2014 в 09:45
1

Если вы делаете что-то с помощью скрипта, один простой способ установить постоянную переменную окружения в командной строке будет указан ниже в