Introducción
En sistemas Linux, source
es un comando de shell incorporado que lee y ejecuta el contenido del archivo en el shell actual. Estos archivos suelen contener una lista de comandos enviados al intérprete de TCL para que los lea y ejecute.
Este tutorial explicará cómo funciona el comando fuente y cuándo usarlo.
Requisitos previos
- Un sistema que ejecuta una distribución de Linux (aprende cómo instalar Ubuntu 20.04, cómo instalar CentOS 7 o cómo instalar Arch Linux)
- Una cuenta con privilegios sudo
- Acceso a la ventana de terminal/línea de comandos
Sintaxis del comando fuente
La fuente El comando utiliza la siguiente sintaxis:
source [filename] [arguments]
donde:
[filename]
:El nombre o la ruta al archivo que desea que ejecute el comando fuente.[arguments]
:Cualquier argumento que proporcione se convierte en parámetro posicional cuando se ejecuta el archivo.
El carácter de punto (punto) se puede utilizar en lugar del source
comando, lo que da como resultado el mismo resultado:
. [filename] [arguments]
Ejemplos de comandos fuente de Linux
Estas son algunas de las formas en que puede usar la source
comando:
Aprobar argumentos
Cree un archivo de texto llamado example.txt en el Inicio directorio con el siguiente contenido:
pwd
date
time
Usa la source
comando para pasar el contenido de este archivo como argumento:
source example.txt
El resultado muestra que la source
El comando se mueve línea por línea, ejecutando cualquier comando enumerado en example.txt .
Para un ejemplo más complejo, cambie el contenido de example.txt a:
echo "The current directory is:"
pwd
echo "Today's date is:"
date
echo "The time is:"
time
Mueva el archivo a Home/source_command/example . Con la source
comando, pase el contenido del archivo como argumento usando la ruta completa al archivo:
source source_command/example/example.txt
Lea el archivo de configuración
La source
El comando también le permite leer variables de un archivo. Comience creando un archivo de configuración de ejemplo example_config.sh en el Inicio directorio y agregando el siguiente contenido:
VAR1="a"
VAR2="b"
VAR3="c"
Cree un script bash llamado example_bash.sh y agrega lo siguiente:
#!/usr/bin/env bash
source example_config.sh
echo "VAR1 is $VAR1"
echo "VAR2 is $VAR2"
echo "VAR3 is $VAR3"
La source
comando permite example_bash.sh para leer las variables VAR1
, VAR2
y VAR3
definiste en example_config.sh .
Ejecute example_bash.sh script usando la source
comando:
source example_bash.sh
Funciones de origen
Si tiene funciones que está usando en varios scripts diferentes, puede guardarlas como archivos separados y usar el source
comando para referirse a ellos al escribir scripts.
Por ejemplo, comience creando una función check_root.sh que comprueba si el usuario que ejecuta el script es un usuario root:
check_root() {
if [[ $EUID -ne 0 ]]; then
echo "You must run this script as root"
exit 1
fi
}
Cree un script llamado example_script.sh y usa la source
comando para insertar el check_root.sh función:
#!/usr/bin/env bash
source check_root.sh
check_root
echo "This is the root user"
Ejecutar este script como un usuario no root produce "You must run this script as root"
como salida y sale del script:
bash example_script.sh
Ejecutar el script como usuario raíz muestra "This is the root user"
como salida:
sudo bash example_script.sh
Actualizar el entorno actual de Shell
Para este ejemplo, estamos creando un comando de alias ll
:
alias ll = 'ls -l'
Este comando lista los archivos en el directorio actual usando el formato extendido:
Sin embargo, este comando solo funciona en la sesión de shell actual. Para hacerlo permanente, abra el bashrc archivo con:
sudo nano ~/.bashrc
Debajo de #some more ls aliases
sección, agregue lo siguiente:
alias ll = 'ls -l'
Actualice el entorno de shell actual con el source
comando:
source ~/.bashrc