shell restaurar cómo establecer las variables de entorno en el caparazón de los peces



variables de entorno ubuntu (4)

¿Puede alguien decirme cuál es la forma correcta de establecer un conjunto de variables de entorno en la concha del pez?

En mi archivo .config / fish / config.fish, tengo una función para configurar mis variables de entorno, como

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.


Las variables que declara están 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 otras shells y herramientas


Variables de entorno en peces

Me gustaría añadir que, si bien la respuesta de @MyEduSol no es incorrecta y ayuda a resolver el problema de OP, -g solo establece que el alcance sea global, mientras que -x está haciendo 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 env vars dentro de una función y el alcance predeterminado será local para esa funció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 a través de reinicios del shell, debe usar -U o --universal :

set -Ux FOO bar

Usar set con -g o --global no establece la variable persistentemente entre instancias de shell





fish