El comando fuente es un comando de shell incorporado que se usa para leer y ejecutar comandos desde un archivo dentro de la sesión de shell actual. El comando fuente se usa comúnmente para retener/cambiar la variable de entorno en el shell actual. En resumen, obtener un script ejecutará comandos de ejecución en el shell actual .
El comando fuente es útil para:
- Actualización de su entorno de shell actual
- Para ejecutar un script de shell en el contexto del entorno actual
- Para importar una función de shell en su secuencia de comandos
- Leer variables desde un script de shell
Sintaxis para el comando fuente
La sintaxis de este comando de shell incorporado es legible por humanos. Toma un archivo y, si se proporcionan argumentos, sirven como parámetros posicionales para el script que se pasa.
source FILENAME [ARGUMENTS]
El . (punto) también se puede utilizar como alternativa para el comando fuente.
. FILENAME [ARGUMENTS]
Cómo usar el comando fuente
Aquí explico algunos ejemplos prácticos donde puedes aplicar el comando fuente.
1. Actualice su entorno de shell actual
Como usuario, puede definir un alias en su entorno de shell actual. Para definir uno para ls -l
tipo:
alias ll = 'ls -l'
Para usarlo escribe:
ll
Aunque lo anterior enumera los archivos en el directorio actual en formato largo, solo funciona para la sesión de shell actual. Para realizar los cambios de forma permanente, abra el archivo ~/.bashrc y agregue:
alias ll = 'ls -l'
Para actualizar el shell actual tipo de entorno:
source ~/.bashrc
2. Ejecute un script de shell en el contexto del entorno de shell actual
Un script de shell no conoce las variables que define como usuario en su entorno de shell actual. El comando fuente se puede usar para ejecutar su script de shell en el contexto de la sesión actual.
Para definir un tipo de variable temporal:
WEBSITE = example.com
Para crear un tipo de script personalizado:
#!/bin/bash echo $WEBSITE
Guarda el archivo. Para ejecutarlo en el contexto de la sesión de shell actual, escriba:
source ./myscript.sh
El resultado se muestra a continuación.
example.com
3. Importar una función de shell
Para definir un tipo de script de shell personalizado:
!#/bin/bash foo() { echo "test" }
Guarde lo anterior como script.sh.
Para importar la función del script anterior en su sesión de shell actual, escriba:
source script.sh
Para usar el foo
tipo de función:
foo
El resultado se muestra a continuación.
test
4. Leer variables desde un script de shell
Para crear un script de shell con algunas variables, escriba:
#!/bin/bash a=1 b=2 c=3
Para leer las variables dentro de otro tipo de script de shell:
#!/bin/bash source abovescript.sh echo $a, $b, $c
La salida debe ser:
1, 2, 3
5. Leer y ejecutar comandos
El comando fuente puede leer y ejecutar comandos desde un archivo. Tengamos un archivo de texto con un conjunto de comandos.
Por ejemplo, el archivo commands.txt tiene el siguiente contenido:
pwd
date
La salida de la fuente
$ source firstexample.txt /home/developer Fri Feb 25 11:10:11:09 GMT 2021
6. Pasar argumentos a funciones
Esta sección describe cómo pasar el parámetro a la función y la misma función que podemos reutilizar a través del comando fuente.
funciones.sh!/usr /bin/bash var1=$1 var2=$2execute.sh
!/usr/bin/bash source functions.sh 10 AA echo “var1 = $var1” echo “var2 = $var2”Salida.sh
var1 = 10 var2 = AA
Conclusión
El comando fuente evaluó el script en el shell actual, mientras que el comando exec se ejecuta en un nuevo shell.
A través de este artículo, aprendió cuatro ejemplos prácticos del comando fuente. Aunque todos son útiles, el más importante para ti como usuario es el primero.