2011-06-09 6 views
14

Me pregunto si es necesario usar "exportar" al establecer una variable en .bashrc.BASH: ¿Se necesita "exportar" cuando se establece una variable en .bashrc?

En mis pruebas edición .bashrc no había ninguna diferencia entre

foo=bar 

y

export foo=bar 

En ambos casos, después de inicio de sesión "barra" salidas "echo $ foo".

Estoy usando Debian Squeeze, si eso es lo que importa.

Gracias chicos de antemano.

Respuesta

11

Intente crear un script de shell que tenga acceso a la variable foo.

Si foo fue export 'ed, será visible en el script de shell, de lo contrario no lo hará.

+0

He creado un script de prueba que contiene "' echo $ foo' ". En ambos casos, al ejecutar el script después del inicio de sesión, la salida fue "bar". ¿Estoy loco? ¿Alguien puede reproducir esto? – casper

+0

¿Cómo se ejecuta el script? './script' o'. script'? –

+0

Ejecuto el script mediante ''./Script'' – casper

10

SuperUser has this covered.

Respuesta corta: export se asegura de que la variable de entorno esté configurada en procesos secundarios. Si no exporta, solo está disponible en el mismo proceso/sesión interactiva.

+1

He creado un script de prueba que contiene "' echo $ foo' ". En ambos casos, al ejecutar el script después del inicio de sesión, la salida fue "bar". ¿Estoy loco? ¿Alguien puede reproducir esto? – casper

5

Es preferible porque las variables exportadas se pasan a procesos secundarios (programas iniciados desde ese shell). Sin el comando de exportación, esas variables solo se aplican al shell en sí y no a los procesos iniciados desde el shell

Cuestiones relacionadas