как установить переменные среды в раковине рыбы
может кто-нибудь, пожалуйста, скажите мне, как правильно установить кучу переменных окружения в раковине рыбы?
В моем .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 ответов:
переменные, которые вы объявляете, хранятся в локальной области внутри вашей функции.
использование:
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это имеет преимущество сохранения переменных в формате, поддерживаемом других орудий и инструментов
Comments