Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
exportar variable local a ambiente - FINALIZADO -
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Spanish
View previous topic :: View next topic  
Author Message
ppkombo61
n00b
n00b


Joined: 14 Feb 2012
Posts: 66

PostPosted: Tue Sep 10, 2013 8:15 pm    Post subject: exportar variable local a ambiente - FINALIZADO - Reply with quote

Hola:
Con el comando export puedo convertir una variable local a otra de ambiente, con lo cual al abrir otro terminal tendria que estar disponible.

Si hago por ejemplo export mesa=madera tengo la variable en el shell actual, pero al abrir otra no.
Segun lo que he leido con eso bastaria, pero no me funciona.
¿Donde esta el error?

Gracias.


Last edited by ppkombo61 on Wed Sep 11, 2013 12:14 am; edited 1 time in total
Back to top
View user's profile Send private message
ek balam
n00b
n00b


Joined: 11 May 2008
Posts: 35
Location: México

PostPosted: Tue Sep 10, 2013 9:52 pm    Post subject: Re: exportar variable local a ambiente Reply with quote

ppkombo61 wrote:
Hola:
Con el comando export puedo convertir una variable local a otra de ambiente, con lo cual al abrir otro terminal tendria que estar disponible.

Si hago por ejemplo export mesa=madera tengo la variable en el shell actual, pero al abrir otra no.
Segun lo que he leido con eso bastaria, pero no me funciona.
¿Donde esta el error?

Gracias.


Hola, usando la terminología que usas... cada shell es un ambiente... es decir... al ejecutar... export mesa=madera... haces la variable mesa accesible a otros programas o scripts que corren en el ambiente (shell).

Para hacer que todas tus shells tengan la variable mesa... tendrias que agregar el comando export mesa=madera al archivo ~/.bashrc ó ~/.bash_profile ... según el tipo de login...

o así lo entiendo yo...

Saludos
Back to top
View user's profile Send private message
agdg
Guru
Guru


Joined: 15 Aug 2010
Posts: 320

PostPosted: Tue Sep 10, 2013 10:18 pm    Post subject: Reply with quote

Mientras escribía la respuesta respondió el compañero, de todas formas ya puestos... ahí va:

Cada shell tiene su propio entorno, independiente al de cualquier otro. De hecho puedes modificar las variables de entorno de un shell sin afectar a las de otro shell. Veamoslo con una prueba:

Abrir un shell:
Code:
agd@agd-desktop ~ $ env | grep TERM
TERM=xterm
COLORTERM=gnome-terminal
agd@agd-desktop ~ $ TERM=test-it
agd@agd-desktop ~ $ env | grep TERM
TERM=test-it
COLORTERM=gnome-terminal

Abrir otro shell:
Code:
agd@agd-desktop ~ $ env | grep TERM
TERM=xterm
COLORTERM=gnome-terminal

¿Qué diferencia existe entonces entre una variable local y una global? Las variables locales solo existen en el shell donde se han creado, las variables globales son heredables, es decir, si se invoca un shell hijo este heredará las variables globales del shell padre, pero no las variables locales. Veamoslo con otro ejemplo:
Code:
agd@agd-desktop ~ $ export x=0
agd@agd-desktop ~ $ y=1
agd@agd-desktop ~ $ echo $x $y
0 1
agd@agd-desktop ~ $ bash
agd@agd-desktop ~ $ echo $x $y
0
agd@agd-desktop ~ $ exit
exit
agd@agd-desktop ~ $ echo $x $y
0 1

En los scripts a veces se exportan variables porque se ejecutan procesos en segundo plano que deben tener acceso a variables del script principal.

Si necesitas comunicar algo a otros scripts o shell, usa tuberías; aquí no me enrollo mucho: la tubería se crea, se escribe en ella y permanece en espera a que otro programa lea su contenido. Te dejo con un ejemplo:
Code:
agd@agd-desktop /tmp $ pipe=/tmp/pipe_1; mkfifo $pipe; for i in $(seq 0 20 100); do echo $i > $pipe & cat $pipe; done
[1] 6606
0
[1]+  Hecho                   echo $i > $pipe
[1] 6608
20
[1]+  Hecho                   echo $i > $pipe
[1] 6610
40
[1]+  Hecho                   echo $i > $pipe
[1] 6612
60
[1]+  Hecho                   echo $i > $pipe
[1] 6614
80
[1]+  Hecho                   echo $i > $pipe
[1] 6616
100
[1]+  Hecho                   echo $i > $pipe
agd@agd-desktop /tmp $

_________________
Antonio Guillen · USAM · Un SysAdmin Más
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Spanish All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum