GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuál es la mejor manera de establecer una variable de entorno en .bashrc?

Solución 1:

La mejor manera

export VAR=value

La diferencia

Haciendo

VAR=value

solo establece la variable durante la duración del script (.bashrc en este caso). Los procesos secundarios (si los hay) del script no tendrán VAR definido, y una vez que el script sale VAR se ha ido.

export VAR=value

agrega explícitamente VAR a la lista de variables que se pasan a los procesos secundarios. ¿Quieres probarlo? Abre una concha, haz

PS1="foo > "
bash --norc

El nuevo shell obtiene el aviso predeterminado. Si en cambio haces algo como

export PS1="foo > "
bash --norc

el nuevo shell recibe el mensaje que acaba de configurar.

Actualización: como señala Ian Kelling debajo de las variables establecidas en .bashrc persistir en el shell que originó .bashrc . De manera más general, cada vez que el shell genera un script (usando el source scriptname comando) las variables establecidas en el script persisten durante la vida útil del shell.

Solución 2:

Ambos parecen funcionar bien, pero el uso de la exportación garantizará que la variable esté disponible para subcapas y otros programas. Para probar esto, prueba esto.

Agregue estas dos líneas a su archivo .bashrc

TESTVAR="no export"
export MYTESTVAR="with export"

Luego abra un nuevo shell.

Ejecutando echo $TESTVAR y echo $MYTESTVAR mostrará el contenido de cada variable. Ahora, dentro de ese mismo shell, elimine esas dos líneas de su archivo .bashrc y ejecute bash para iniciar una subcapa.

Ejecutando echo $TESTVAR tendrá una salida vacía, pero ejecutando echo $MYTESTVAR mostrará "con exportación"


Linux
  1. Si los procesos heredan el entorno de los padres, ¿por qué necesitamos exportar?

  2. ¿Dónde se establece el término valor predeterminado de la variable de entorno?

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

  4. ¿Cuál es la mejor manera de manejar las condiciones de falta de memoria en Java?

  5. ¿Dónde está configurada la variable de entorno $HOME?

¿Qué es el Shell en Linux?

Cómo establecer la variable de entorno en Bash

¿Qué es Subshell en Linux?

Establecer la variable de entorno en el script de shell/acceso en la aplicación Tomcat

¿Cómo configurar la variable de entorno dentro de GDB usando el comando de shell?

¿Cuál es la ubicación correcta de la variable Shell de PS1?