On Fri, 25 Aug 2000, Ignacio García Fernández wrote: > Tengo un script para cambiar la variable DISPLAY que dice así: > > #! /usr/bin/sh > export DISPLAY=maquina.remota.es > > El caso es que lo ejecuto y no pasa absolutamente nada. > > Tampoco ocurre nada si le digo > > $ sh ./script > > Alguien puede echarme una mano?
Esa me la sé. Si lo ejecutas con el nombre del script ('./script') o especificando un shell ('sh ./script') (ambas cosas son equivalentes) la asignación de la variable DISPLAY y la 'exportación' de dicha variable se realizan en el entorno del shell creado para ejecutar el script. Cuando termina el script, ese shell acaba y su entorno se pierde. Sus hijos (si hubiera tenido alguno) habrían heredado las variables 'exportadas'. Pero el shell desde el que hemos ejecutado el script es _su_padre_ y, claro, no hereda nada. Todo se ha perdido. Lo que queremos en este caso es que las instrucciones contenidas en ese script se ejecuten _en_nuestro_shell_ y que no se cree un hijo para ejecutarlas. Lo que necesitamos es el comando 'source' o su equivalente '.'. Son comandos internos del shell y hacen justo lo que queremos. Así que yo creo que si ejecutas source ./script (o source script) o . ./script (o . script) la cosa debería funcionar. Y espero que funcione. Suerte. -- Eloy _____________________________________________________________________ ---- Eloy Rafael Sanz Tapia -- [EMAIL PROTECTED] -- [EMAIL PROTECTED] ----- ------------------ http://www.uco.es/~ma1satae ---------------------- ----------- GPG ID: 190169A0 / finger [EMAIL PROTECTED] ---------- Córdoba _ España _______________ Debian 2.2 GNU/Linux 2.2.16 rabinf50