Creación y ejecución de un script básico con source
En este paso, crearemos un archivo de script simple y utilizaremos el comando source para ejecutarlo en nuestro entorno de shell actual. Esto nos ayudará a entender cómo source difiere de la ejecución regular de scripts.
Cuando se ejecuta un script normalmente (utilizando ./script.sh), la shell crea un nuevo subproceso para ejecutar el script. Cualquier variable o función definida en ese script solo existe dentro de ese subproceso y desaparece cuando el script finaliza. Sin embargo, cuando se utiliza el comando source (o su forma abreviada .), los comandos del script se ejecutan en el entorno de la shell actual, lo que permite que las variables y funciones persistan después de que el script se complete.
Vamos a crear un script básico para demostrar este concepto:
1. Navegar al directorio del proyecto
Primero, asegúrese de estar en el directorio correcto:
cd ~/project
2. Crear un archivo de script simple
Cree un nuevo archivo llamado variables.sh utilizando el editor nano:
nano variables.sh
Agregue el siguiente contenido al archivo:
#!/bin/bash
## Este script establece una variable de entorno
export WEATHER="Sunny"
echo "The weather is now set to: $WEATHER"
Presione Ctrl+O para guardar el archivo, luego Enter para confirmar el nombre del archivo y, finalmente, Ctrl+X para salir de nano.
3. Hacer el script ejecutable
Antes de poder ejecutar el script, debemos hacer que sea ejecutable:
chmod +x variables.sh
4. Ejecutar el script normalmente
Primero, ejecutemos el script de la manera tradicional:
./variables.sh
Debería ver una salida similar a:
The weather is now set to: Sunny
Ahora, verifique si la variable WEATHER existe en su shell actual:
echo $WEATHER
Es probable que no vea nada o una línea en blanco. Esto se debe a que la variable solo se estableció en el subproceso que ejecutó el script, no en su shell actual.
5. Ejecutar el script con source
Ahora, usemos el comando source para ejecutar el script:
source variables.sh
Verá la misma salida:
The weather is now set to: Sunny
Verifique la variable WEATHER nuevamente:
echo $WEATHER
Esta vez, debería ver:
Sunny
La variable WEATHER ahora existe en su shell actual porque utilizó el comando source para ejecutar el script.
6. Usar la notación abreviada
También puede usar la notación abreviada con el punto (.) para el comando source:
. variables.sh
Esto producirá el mismo resultado que usar source variables.sh.