Incluir archivo de script en otro script de Bash

Este artículo analiza diferentes métodos para incluir un archivo de script Bash en otro archivo de script.
Incluir archivo en un script Bash
Incluir o reutilizar un script es muy sencillo en Bash. La palabra clave fuente
es similar a #include
en C/C++.
Para reutilizar un script, use la palabra clave fuente
con el nombre/ruta completa del archivo dependiendo de si desea importar el script desde el mismo directorio o desde otro directorio.
En general, la sintaxis se da de la siguiente manera:
source <filename>
Digamos que tenemos un script llamado sorting.sh
con el siguiente contenido.
TEST_VAR="Hello"
La sintaxis sería la siguiente.
Guión de bash:
#!/bin/bash
source sorting.sh
echo ${TEST_VAR}
Alternativamente, el .
operator es una abreviatura de la palabra clave fuente
y funciona de manera similar.
Guión de bash:
#!/bin/bash
sorting.sh
echo ${TEST_VAR}
Ambos ejemplos anteriores devolverán el siguiente resultado.
Producción :
Hello
Tenga en cuenta que el .
El operador es compatible con POSIX mientras que la palabra clave fuente
no lo es. Esto significa que el .
El operador funcionará en todos los entornos de shell POSIX, mientras que la fuente
puede que no, pero en el contexto de Bash, es perfectamente seguro usar la palabra clave fuente
.
Otro punto a tener en cuenta es que source
no funciona exactamente como include
en C/C++ porque ejecutará el script de origen completo en el script de destino en lugar de poder llamar y ejecutar funciones separadas individualmente.
La forma más segura de usar una secuencia de comandos en otra secuencia de comandos que funcione con todos los niveles de directorios y no cause errores debido a que los directorios son diferentes o están en diferentes niveles es usar la siguiente secuencia de comandos.
Guión de bash:
$(dirname "$0")/sorting.sh