==== Diferencia entre las distintas maneras de ejecutar scripts en UNIX ("bash" / "sh", "./", "source", ".") ====
* "**./**" El script debe ser ejecutable y será ejecutado en un interprete de comandos nuevo.
* "**bash XX.sh**" No es necesario que el fichero sea ejecutable y el script se ejecutará en una shell nueva.
* "**source**" No necesita que el script sea ejecutable y se ejecuta sobre la misma shell. Por lo tanto los cambios de ruta, variables, etc tienen impacto sobre la shell en la que se ejecuta el script.
* "**.**" Sinónimo de source (No confundirlo con "./").
**Script de ejemplo / prueba de concepto.**
#!/bin/bash
export variable=hola
echo "PID: $$"
echo "Valor de la variable: $variable"
pwd
cd $HOME/.config # Cámbiese por el directorio que se quiera.
pwd
~ $ bash ejemplo1.sh && echo "---> $variable"
PID: 5329
Valor de la variable: hola
/home/marta
/home/marta/.config
--->
~ $ ./ejemplo1.sh && echo "---> $variable"
PID: 5334
Valor de la variable: hola
/home/marta
/home/marta/.config
--->
########################################
~ $ source ejemplo1.sh && echo "---> $variable"
PID: 3370
Valor de la variable: hola
/home/marta
/home/marta/.config
---> hola
~/.config $ cd ..
~ $ source ./ejemplo1.sh && echo "---> $variable"
PID: 3370
Valor de la variable: hola
/home/marta
/home/marta/.config
---> hola
~/.config $