2010-06-17 15 views
12

Tengo algunas configuraciones de proxy que ocasionalmente quiero encender, así que no quiero ponerlas en mi ~/.bash_profile. Traté de ponerlos directamente en ~/bin/set_proxy_env.sh, agregando ~/bin a mi PATH, y chmod +x escribiendo la secuencia de comandos, pero aunque la secuencia de comandos se ejecuta, las variables no se pegan en mi caparazón. ¿Alguien sabe cómo hacer que se queden por el resto de la sesión de shell?¿Cómo configuro variables de entorno bash a partir de un script?

Respuesta

18

Utilice uno de:

source <file> 

. <file> 
+0

que señor, es dinero en el banco – tofutim

14

En la secuencia de comandos utiliza

export varname=value

y también ejecutar el script con:

source set_proxy_env.sh.

La palabra clave export asegura que la variable esté marcada para su inclusión automática en el entorno de los comandos ejecutados posteriormente. El uso de source para ejecutar un script lo inicia con el presente shell en lugar de iniciar uno temporal para el script.

+0

tuve el 'export'; era la 'fuente' que me faltaba. –

4

¿Usted intentó esto:

. ~/bin/set_proxy_env.sh

Correr por sí mismo abre una subcapa separada (creo) y la variable allí. Pero luego la unión se pierde después de salir de nuevo a su caparazón. El punto en el frente le dice que lo ejecute dentro del mismo caparazón.

Además, no se olvide de export las variables que necesita de este modo: export MYVAR=value

+0

No es necesario exportar todas las variables. Solo los que necesita para ser visible para procesos secundarios. –

+0

Ah sí, eso es lo que quise decir :) –

Cuestiones relacionadas