Como exportar variables de un script a la shell principal.

Iniciado por mario290386, 14 Octubre 2018, 09:34 AM

0 Miembros y 1 Visitante están viendo este tema.

mario290386

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:
export Ip1=60
export Ip2=100


Y en otro script llamado envia.sh tengo esto:
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!!

EdePC

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 (bash) [Seleccionar]
[root@localhost ~]# cat config.sh
export Ip1=60
export Ip2=100
[root@localhost ~]# cat envia.sh
source config.sh
bash
[root@localhost ~]# ./envia.sh
[root@localhost ~]# echo $Ip1 $Ip2
60 100
[root@localhost ~]# echo $Ip1 $Ip2 in Child Bash
60 100  in Child Bash
[root@localhost ~]# exit
exit
[root@localhost ~]#


mario290386

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!!

EdePC

- Correcto, se exportan las variables desde una Shell Padre, luego este Padre crea una Shell Hija que hereda las variables.