shell - restaurar - variables de entorno linux
Cómo establecer variables de entorno en la concha de pescado (4)
¿Puede alguien decirme cuál es la forma correcta de establecer un montón de variables de entorno en la concha de pescado?
En mi archivo .config / fish / config.fish, tengo una función para configurar mis variables de entorno de esta manera
function setTESTENV
set -x BROKER_IP ''10.14.16.216''
set -x USERNAME ''foo''
set -x USERPASS ''bar''
end
cuando
setTESTENV
desde el símbolo del sistema
setTESTENV
y hago un
env
en la línea de comando, no veo esta información.
Usar variables universales
Si la variable tiene que ser compartida entre todas las instancias actuales de peces de usuario en la computadora actual y
preservada en los reinicios
del shell, debe usar
-U
o
--universal
:
set -Ux FOO bar
El uso de
set
with
-g
o
--global
no establece la variable de forma persistente entre instancias de shell
Las variables que está declarando se mantienen en un ámbito local dentro de su función.
Utilizar:
set -g -x
Aquí "
g
" es para global.
Otra opción es ejecutar:
export (cat env_file.txt |xargs -L 1)
donde env_file.txt contiene filas del formato
VAR=VALUE
Esto tiene la ventaja de mantener las variables en un formato compatible con otros shells y herramientas.
Me gustaría agregar que, aunque la respuesta de @ JosEduSol no es incorrecta y ayuda a resolver el problema de OP,
-g
solo establece el alcance como global, mientras que
-x
hace que la variable de entorno especificada se exporte a procesos secundarios.
La razón por la que falla lo anterior es porque @cfpete está configurando los valores del entorno dentro de una función y el alcance predeterminado será local para esa función.