2011-09-07 12 views
119

Estoy tratando de entender el uso del comando export.comando de exportación UNIX

Intenté usar man export, pero no hay un manual para este comando.

¿Alguien puede ayudarme a comprender el uso de export en UNIX?

+0

es extremadamente raro que no haya una página de manual para él. Yo tampoco veo ninguno. – Pinocchio

Respuesta

177

Cuando ejecuta un programa, el programa secundario hereda sus variables de entorno del elemento primario. Por ejemplo, si $HOME se establece en /root en el elemento primario, la variable $HOME del elemento secundario también se establece en /root.

Esto solo se aplica a las variables de entorno que están marcadas para la exportación. Si configura una variable en la línea de comandos como

$ FOO="bar" 

Esa variable no estará visible en los procesos hijos. No a menos que exporta:

$ export FOO 

se pueden combinar estas dos declaraciones en una sola, en bash (pero no en sh vieja escuela):

$ export FOO="bar" 

aquí es un ejemplo rápido que muestra la diferencia entre variables exportadas y no exportadas. Para comprender lo que sucede, sepa que sh -c crea un proceso de shell secundario que hereda el entorno del shell principal.

$ FOO=bar 
$ sh -c 'echo $FOO' 

$ export FOO 
$ sh -c 'echo $FOO' 
bar 

Nota: para obtener ayuda en el caparazón de comandos internos utilizan help export. Los integradores de Shell son comandos que forman parte de su shell en lugar de ejecutables independientes como /bin/ls.

13

Unix

El env comandos, configurar, y la pantalla printenv todas las variables de entorno y sus valores. env y set también se utilizan para establecer variables de entorno y, a menudo, se incorporan directamente en el shell. printenv también se puede usar para imprimir una sola variable asignando ese nombre a la variable como único argumento para el comando.

En Unix, los siguientes comandos también se pueden utilizar, pero a menudo dependen de un determinado shell.

export VARIABLE=value # for Bourne, bash, and related shells 
setenv VARIABLE value # for csh and related shells 

Puede echar un vistazo a this en

+3

Bienvenido a StackOverflow. Tenga en cuenta que el clásico shell de Bourne requeriría: 'VARIABLE = value; exportar VARIABLE' en lugar de asignar y exportar a la vez.El comando 'set' en C Shell es para variables de shell en lugar de variables de entorno; 'setenv' es la contraparte de' export' El comando 'set' en las shells derivadas de Bourne imprime todas las variables, no solo las variables exportadas (de entorno). Históricamente, al menos, el comando 'env' está separado del shell (no es un built-in), aunque podría convertirse fácilmente en un built-in. Establece el entorno para un comando específico, no el shell que lo ejecuta. –

1

export se utiliza para establecer las variables de entorno. Por ejemplo:

export EDITOR=pico 

fijará su editor de texto predeterminado para que sea el comando pico.

2

export es un comando integrado del bash shell y otro Bourne shell variants. Se usa para marcar una variable de shell para exportar a procesos secundarios.

Cuestiones relacionadas