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


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

В моем .config / fish / config.fish file, у меня есть функция для настройки переменных окружения, таких как so

function setTESTENV
      set -x BROKER_IP '10.14.16.216'
      set -x USERNAME 'foo'
      set -x USERPASS 'bar'
end 

когда я набираю в командной строке setTESTENV и env в командной строке, я не вижу этой информации.

4   51   2014-09-03 01:39:56

4 ответа:

переменные, которые вы объявляете, хранятся в локальной области внутри вашей функции.

использование:

set -g -x

здесь "g" является глобальной.

использовать Универсальный Переменных

если переменная должна быть разделена между всеми экземплярами рыбы текущего пользователя на текущем компьютере и сохраняется при перезагрузках оболочки вы должны использовать -U или --universal:

set -Ux FOO bar

используя set С -g или --global не устанавливает переменную постоянно между экземплярами оболочки

Переменные среды в рыбе

Я хотел бы добавить, что, хотя ответ @JosEduSol не является неправильным и помогает решить проблему OP,-g только устанавливает область, чтобы быть глобальным, в то время как -x вызывает экспорт указанной переменной среды в дочерние процессы.

причина вышеописанного сбоя заключается в том, что @cfpete устанавливает env vars внутри функции, и область по умолчанию будет локальной для этой функции.

другой вариант-запустить:

export (cat env_file.txt |xargs -L 1)

где env_file.txt содержит строки формата VAR=VALUE

это имеет преимущество сохранения переменных в формате, поддерживаемом других орудий и инструментов