Introduzione
Nei sistemi Linux, source
è un comando di shell integrato che legge ed esegue il contenuto del file nella shell corrente. Questi file di solito contengono un elenco di comandi inviati all'interprete TCL da leggere ed eseguire.
Questo tutorial spiegherà come funziona il comando sorgente e quando usarlo.
Prerequisiti
- Un sistema che esegue una distribuzione Linux (scopri come installare Ubuntu 20.04, come installare CentOS 7 o come installare Arch Linux)
- Un account con privilegi sudo
- Accesso alla finestra del terminale/riga di comando
Sintassi del comando di origine
La fonte comando utilizza la seguente sintassi:
source [filename] [arguments]
Dove:
[filename]
:il nome o il percorso del file che desideri venga eseguito dal comando sorgente.[arguments]
:Tutti gli argomenti forniti diventano parametri posizionali quando il file viene eseguito.
Il carattere punto (punto) può essere utilizzato al posto del source
comando, ottenendo lo stesso output:
. [filename] [arguments]
Esempi di comando sorgente Linux
Ecco alcuni dei modi in cui puoi utilizzare il source
comando:
Escludi argomenti
Crea un file di testo chiamato example.txt nella Home directory con il seguente contenuto:
pwd
date
time
Usa il source
comando per passare il contenuto di questo file come argomento:
source example.txt
L'output mostra che il source
il comando si sposta riga per riga, eseguendo tutti i comandi elencati in example.txt .
Per un esempio più complesso, modifica il contenuto di example.txt a:
echo "The current directory is:"
pwd
echo "Today's date is:"
date
echo "The time is:"
time
Sposta il file in Home/comando_origine/esempio . Con il source
comando, passa il contenuto del file come argomento utilizzando il percorso completo del file:
source source_command/example/example.txt
Leggi il file di configurazione
Il source
Il comando consente anche di leggere le variabili da un file. Inizia creando un file di configurazione di esempio example_config.sh nella Home directory e aggiungendo il seguente contenuto:
VAR1="a"
VAR2="b"
VAR3="c"
Crea uno script bash chiamato example_bash.sh e aggiungi quanto segue:
#!/usr/bin/env bash
source example_config.sh
echo "VAR1 is $VAR1"
echo "VAR2 is $VAR2"
echo "VAR3 is $VAR3"
Il source
il comando consente example_bash.sh per leggere le variabili VAR1
, VAR2
e VAR3
hai definito in example_config.sh .
Esegui example_bash.sh script utilizzando il source
comando:
source example_bash.sh
Funzioni di origine
Se disponi di funzioni che stai utilizzando in diversi script, puoi salvarle come file separati e utilizzare il source
comando per farvi riferimento durante la scrittura degli script.
Ad esempio, inizia creando una funzione check_root.sh che controlla se l'utente che esegue lo script è un utente root:
check_root() {
if [[ $EUID -ne 0 ]]; then
echo "You must run this script as root"
exit 1
fi
}
Crea uno script chiamato example_script.sh e usa il source
comando per inserire il check_root.sh funzione:
#!/usr/bin/env bash
source check_root.sh
check_root
echo "This is the root user"
L'esecuzione di questo script come utente non root produce "You must run this script as root"
come output ed esce dallo script:
bash example_script.sh
L'esecuzione dello script come utente root mostra "This is the root user"
come output:
sudo bash example_script.sh
Aggiorna l'ambiente Shell corrente
Per questo esempio, stiamo creando un comando alias ll
:
alias ll = 'ls -l'
Questo comando elenca i file nella directory corrente utilizzando il formato esteso:
Tuttavia, questo comando funziona solo nella sessione della shell corrente. Per renderlo permanente, apri il bashrc file con:
sudo nano ~/.bashrc
Sotto il #some more ls aliases
sezione, aggiungi quanto segue:
alias ll = 'ls -l'
Aggiorna l'ambiente shell corrente con il source
comando:
source ~/.bashrc