Ir al contenido
  • 0
Conéctate para seguir esto  
mario290386

No puedo guardar variables desde fichero

Pregunta

Por favor necesito ayuda con un problema con variables en linux:

Resulta que tengo un script de configuración llamado config. Sh en el que defino diferentes variables de uso temporal y les asigno un valor preestablecido, por ejemplo:

 

export ip1=99
export ip2=100 

 

 

Y luego tengo un script llamado general.sh desde el cual quiero ejecutar el script anterior config.sh, este es su contenido

#!/bin/bash
Echo exportando variables
. Config. Sh
Source config. Sh

 

Pues el problema es que no consigo exportar esas variables, al ejecutar desde la terminal el script "general.sh" se ejecuta todo sin problemas pero si hago un "echo $ip1" la variable no tiene ningún valor, lo curioso es que si desde la terminal añado "source config.sh" entonces la variable $ip1 si que me devuelve su valor.

 

No entiendo porque al poner "source config.sh" desde el script no se asignan las variables y al hacerlo desde la terminal si se añaden, ¿qué estoy haciendo mal? He probado varias cosas como " echo 'source config.sh' " pero no consigo que funcione desde el script. Entonces, ¿de qué manera se añaden ejecutan comandos desde un script como si fuesen desde la terminal?

 

He probado todo tipo de cosas y no entiendo porque sucede esto, si es el mismo comando que mas da que este en el script que lo ejecute en la terminal...

 

Compartir este post


Enlace al post
Compartir en otros sitios

7 respuestas a esta pregunta

Recommended Posts

  • 0

Hola pacoeloyo, tanto el archivo principal como el de la exportación se encuentran en mi escritorio, es decir, general.sh  y  config.sh  se encuentran en /home/mario/Desktop y tienen tanto permisos de ejecución como de escritura.

 

Debo decir que añadí la ruta de mi escritorio al PATH para poder ejecutar mis ficheros desde cualquier ruta, no se si esto tendrá algo que ver.

Compartir este post


Enlace al post
Compartir en otros sitios
  • 0

Por cierto, haciendo pruebas me he dado cuenta de una cosa:

Al fichero general.sh  le he añadido las variables:


#!/bin/bash

source config. sh
echo $ip1
echo $ip2

y al ejecutarlo me muestra su valor correctamente:

mario@ubuntu:~$ general.sh
99
100

Pero si acto seguido hago esto:  

echo $ip1
echo $ip2

Sorpresa: no me muestra su valor, es como si la variable dejase de tener valor después de ejecutar el script general.sh, y para que su valor permaneza tengo que escribir en la terminal "source general.sh" y asi si que permanecen lo svalores hasta que cierre la terminal.

 

Compartir este post


Enlace al post
Compartir en otros sitios
  • 0
Hola Pepetops, realmente export variable ya lo uso en el archivo config.sh que uso para declarar las variables:
export ip1=99export ip2=100

De todas formas he probado ha ponerlo tambien sin export y no he tenido tampoco resultados.

Disculpa mi error, no leí bien tu mensaje inicial

Enviado desde mi ASUS_Z012D mediante Tapatalk

Compartir este post


Enlace al post
Compartir en otros sitios

Registra una cuenta o conéctate para comentar

Debes ser un miembro de la comunidad para dejar un comentario

Crear una cuenta

Regístrate en nuestra comunidad. ¡Es fácil!

Registrar una cuenta nueva

Iniciar Sesión

¿Ya tienes cuenta? Conéctate aquí.

Iniciar Sesión
Conéctate para seguir esto  

×