La source
comando lee y ejecuta comandos desde el archivo especificado como su argumento en el entorno de shell actual. Es útil para cargar funciones, variables y archivos de configuración en scripts de shell.
source
es un shell incorporado en Bash y otros shells populares utilizados en los sistemas operativos Linux y UNIX. Su comportamiento puede ser ligeramente diferente de un caparazón a otro.
Sintaxis del comando fuente #
La sintaxis para el source
El comando es el siguiente:
source FILENAME [ARGUMENTS]
. FILENAME [ARGUMENTS]
source
y.
(un punto) son el mismo comando.- Si el
FILENAME
no es una ruta completa a un archivo, el comando buscará el archivo en los directorios especificados en$PATH
variable ambiental. Si el archivo no se encuentra en el$PATH
, el comando buscará el archivo en el directorio actual. - Si hay
ARGUMENTS
se dan, se convertirán en parámetros posicionales para elFILENAME
. - Si el
FILENAME
existe, lasource
el código de salida del comando es0
, de lo contrario, si no se encuentra el archivo, devolverá1
.
Ejemplos de comandos fuente #
En esta sección, veremos algunos ejemplos básicos de cómo usar el source
comando.
Funciones de abastecimiento #
Si tiene secuencias de comandos de shell que usan las mismas funciones, puede extraerlas en un archivo separado y luego obtener ese archivo en sus secuencias de comandos.
En este ejemplo, crearemos un archivo que incluye una función bash que comprueba si el usuario que ejecuta el script es el root y, si no, muestra un mensaje y sale del script.
functions.shcheck_root () {
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root"
exit 1
fi
}
Ahora, en cada secuencia de comandos que solo debe ejecutar el usuario raíz, simplemente obtenga functions.sh
archivo y llame a la función:
#!/usr/bin/env bash
source functions.sh
check_root
echo "I am root"
Si ejecuta la secuencia de comandos anterior como usuario no root, imprimirá "Esta secuencia de comandos debe ejecutarse como root" y saldrá.
La ventaja de este enfoque es que sus secuencias de comandos serán más pequeñas y más legibles, puede reutilizar el mismo archivo de función cuando sea necesario y, en caso de que necesite modificar una función, solo editará un archivo.
Número de archivo de configuración de Bash
Con la source
comando, también puede leer variables de un archivo. Las variables deben configurarse utilizando la sintaxis de Bash, VARIABLE=VALUE
.
Vamos a crear un archivo de configuración de prueba:
config.shVAR1="foo"
VAR2="bar"
En su script bash, use el source
comando para leer el archivo de configuración:
#!/usr/bin/env bash
source config.sh
echo "VAR1 is $VAR1"
echo "VAR2 is $VAR2"
Si ejecuta el script, la salida se verá así:
VAR1 is foo
VAR2 is bar
Conclusión #
En esta guía, ha aprendido a usar la source
comando incorporado en sus scripts de shell.
Si tiene alguna pregunta o comentario, no dude en dejar un comentario.