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!!
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.
[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 ~]#
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!!
- Correcto, se exportan las variables desde una Shell Padre, luego este Padre crea una Shell Hija que hereda las variables.