Definir una variable con o sin exportación

Resuelto flybywire asked hace 15 años • 15 respuestas

¿Que es exportpor?

Cuál es la diferencia entre:

export name=value

y

name=value
flybywire avatar Jul 21 '09 16:07 flybywire
Aceptado

exporthace que la variable esté disponible para los subprocesos.

Eso es,

export name=value

significa que el nombre de la variable está disponible para cualquier proceso que ejecute desde ese proceso de shell. Si desea que un proceso utilice esta variable, utilice exporty ejecute el proceso desde ese shell.

name=value

significa que el alcance de la variable está restringido al shell y no está disponible para ningún otro proceso. Usaría esto para (digamos) variables de bucle, variables temporales, etc.

Es importante tener en cuenta que exportar una variable no la hace disponible para los procesos principales. Es decir, especificar y exportar una variable en un proceso generado no la hace disponible en el proceso que la inició.

Brian Agnew avatar Jul 21 '2009 09:07 Brian Agnew

Para ilustrar lo que dicen las otras respuestas:

$ foo="Hello, World"
$ echo $foo
Hello, World
$ bar="Goodbye"
$ export foo
$ bash
bash-3.2$ echo $foo
Hello, World
bash-3.2$ echo $bar

bash-3.2$ 
alxp avatar Jul 21 '2009 09:07 alxp