Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: mario290386 en 14 Octubre 2018, 09:34 am



Título: Como exportar variables de un script a la shell principal.
Publicado por: mario290386 en 14 Octubre 2018, 09:34 am
Hola a todos!!  :D
Tengo un problema que quizas sea algo sencillo de hacer pero no consigo resolver.
Tengo un archivo llamado config.sh que contiene lo siguiente:
Código:
export Ip1=60
export Ip2=100

Y en otro script llamado envia.sh tengo esto:
Código:
source config.sh
echo $ip1  $ip2

Lo que pretendo es que al ejecutar el script “envia.sh” se guarden estas variables de modo que pueda usarlas en la shell principal.
Cuando ejecuto el script “envia.sh” el comando echo me lo realiza correctamente y me muestra el valor de las 2 variables, pero cuando en la shell principal hago un “echo $ip1” el valor me aparece vacio, he intentado varios metodos pero no consigo que el proceso principal reconozca las variables pese a que han sido exportadas. No se si hay otro metodo especifico para hacer esto. Por supuesto el script tiene permisos de ejecución y lo ejecuto de esta manera ". envia.sh"
Espero que alguien pueda arrojarme algo de luz, saludos!!


Título: Re: Como exportar variables de un script a la shell principal.
Publicado por: EdePC en 14 Octubre 2018, 15:03 pm
Saludos,

- Tengo entendido que las variables exportadas desde un Shell Padre solo son accesibles desde una Shell Hija, es decir, tienes que exportar tus variables y luego llamar a una Shell, esta nueva Shell hereda las variables exportadas.

Código
  1. [root@localhost ~]# cat config.sh
  2. export Ip1=60
  3. export Ip2=100
  4. [root@localhost ~]# cat envia.sh
  5. source config.sh
  6. bash
  7. [root@localhost ~]# ./envia.sh
  8. [root@localhost ~]# echo $Ip1 $Ip2
  9. 60 100
  10. [root@localhost ~]# echo $Ip1 $Ip2 in Child Bash
  11. 60 100  in Child Bash
  12. [root@localhost ~]# exit
  13. exit
  14. [root@localhost ~]#


Título: Re: Como exportar variables de un script a la shell principal.
Publicado por: mario290386 en 14 Octubre 2018, 16:37 pm
Muchas gracias ahora si me funciona!!  ;-) solo me faltaba añadir en el script "bash" imagino que la función de esto es llamar a una nueva shell y de esta manera se exportan.
Saludos!!


Título: Re: Como exportar variables de un script a la shell principal.
Publicado por: EdePC en 15 Octubre 2018, 00:09 am
- Correcto, se exportan las variables desde una Shell Padre, luego este Padre crea una Shell Hija que hereda las variables.