GNU/Linux >> Tutoriales Linux >  >> Linux

Configuración de variables de entorno de Linux

Este es un extracto de la página man de Bash:

exportar [-fn] [nombre[=palabra]] ...
exportar -p
Los nombres proporcionados se marcan para la exportación automática al entorno de los comandos ejecutados posteriormente. Si se da la opción -f, los nombres se refieren a funciones...

Si solo necesita la variable en el entorno actual, no es necesario utilizar la exportación.

var=value

Editar:

Sin exportación:solo entorno actual. Con exportación:entorno actual y entornos secundarios.

Aquí hay una demostración del efecto de la exportación sobre la disponibilidad de una variable en un entorno secundario y que los cambios en el entorno secundario no afectan al principal:

$ var1=123
$ export var2=456
$ echo "parent [$var1] [$var2] [$var3]"
parent [123] [456] []
$ var3=789 bash -c 'echo "child [$var1] [$var2] [$var3]"; var1=111; var2=222; var3=333; echo "child [$var1] [$var2] [$var3]"'
child [] [456] [789]
child [111] [222] [333]
$ echo "parent [$var1] [$var2] [$var3]"
parent [123] [456] []

Después del primer eco (echo "parent..." ) ve "123" y "456" porque ambos var1 y var2 están activos en el entorno actual. No ve un valor para var3 porque aún no está configurado.

Después de la línea que comienza "var3=... " no ve un valor para var1 porque no fue exportado. Tu haces ver un valor para var2 porque era exportado. Ves un valor para var3 porque se configuró para el entorno secundario solo .

(bash -c es equivalente a ejecutar un script con el contenido del argumento del -c opción. Un script u otro ejecutable o, en este caso, el argumento de bash -c se convierte en un hijo del entorno actual que, como resultado, es, por supuesto, el padre del niño).

En el "script" se cambian los valores de la variable. Ahora genera esos nuevos valores.

Una vez que finaliza el "script", la ejecución vuelve al entorno principal (la línea de comando en este caso). Después del último eco, verá los valores originales porque los cambios realizados en el entorno secundario no afectan al principal.


Tu dices eso

Siempre estoy usando el comando de exportación para establecer la variable de entorno

Por la forma en que lo redactaste, parece que realmente estás tratando de preguntar cómo haces que persista una variable ambiental. Para hacerlo, deberá colocar su export VAR="foo" declaración en su archivo $HOME/.bash_profile (si está usando bash). Si desea que la variable ambiental persista para todos los usuarios excepto para el root, agréguela a /etc/profile. Si desea agregarlo también para el usuario raíz, configúrelo en /root/.bash_profile .

Esto funcionará para todos los shells de inicio de sesión donde bash es el shell de elección. Para shells sin inicio de sesión, debe usar .bashrc. No tengo ideas que ofrecer para otras conchas :D


Linux
  1. Configuración de variables de entorno de Shell | Cáscara BASH

  2. Cómo establecer/crear variables de entorno y shell en Linux

  3. Linux:¿las variables de entorno son visibles para los usuarios sin privilegios en Linux?

  4. Comando de exportación de Linux

  5. Ejemplos de comandos de exportación de Linux (cómo establecer variables de entorno)

Cómo configurar/desconfigurar variables de entorno en Linux

Cómo configurar y desactivar variables de entorno en Linux

Guía fácil paso a paso de variables de entorno de Linux

Comando de exportación en Linux

Variables de entorno de Linux

Configuración de un entorno de desarrollo brillante dentro de Linux en Windows 10