Cuando se ejecuta desde una shell un comando o un script, se crea un subproceso (proceso hijo) de la shell que ejecuta el comando o el script (proceso padre).
Si el script que ejecuta el proceso hijo crea o modifica alguna variable de entorno, esos cambios o variables desaparecen cuando finaliza el comando o script.
Si deseamos que dichos cambios permanezcan, podemos utilizar el comando de Bash source. Este comando hace que el proceso o comando se ejecute sin crear ningún proceso hijo, de forma que los cambios efectuados en las variables de entorno y demás, se mantengan al finalizar el archivo.
Veamos el uso del comando source de Bash con un ejemplo.
Tenemos creado el script ejemplo_source.sh, que contiene el siguiente código:
1 2 3 |
#!/bin/bash VAR_EJEMPLO_SOURCE='www.aradaen.com'; echo '$VAR_EJEMPLO_SOURCE='$VAR_EJEMPLO_SOURCE; |
Al Ejecutarlo obtenemos :
1 |
$VAR_EJEMPLO_SOURCE=www.aradaen.com |
Después de la ejecución del SCRIPT tratamos de ver el valor que tiene la variable, veremos que esta vacía. Pero si el SCRIPT lo ejecutamos con el comando SOURCE, el valor lo mantendrá, ya que no crea procesos HIJOS, sino que lo ejecuta en el mismo entorno.-