Il source
comando legge ed esegue i comandi dal file specificato come argomento nell'ambiente shell corrente. È utile caricare funzioni, variabili e file di configurazione negli script della shell.
source
è una shell integrata in Bash e altre shell popolari utilizzate nei sistemi operativi Linux e UNIX. Il suo comportamento potrebbe essere leggermente diverso da shell a shell.
Sintassi comando sorgente #
La sintassi per il source
il comando è il seguente:
source FILENAME [ARGUMENTS]
. FILENAME [ARGUMENTS]
source
e.
(un punto) sono lo stesso comando.- Se il
FILENAME
non è un percorso completo di un file, il comando cercherà il file nelle directory specificate in$PATH
variabile ambientale. Se il file non si trova nel$PATH
, il comando cercherà il file nella directory corrente. - Se ci sono
ARGUMENTS
vengono forniti, diventeranno parametri posizionali perFILENAME
. - Se il
FILENAME
esiste, ilsource
codice di uscita del comandoè0
, altrimenti, se il file non viene trovato restituirà1
.
Esempi di comando sorgente #
In questa sezione, esamineremo alcuni esempi di base di come utilizzare il source
comando.
Funzioni di approvvigionamento #
Se disponi di script di shell che utilizzano le stesse funzioni, puoi estrarli in un file separato e quindi estrarre quel file nei tuoi script.
In questo esempio creeremo un file che include una funzione bash che controlla se l'utente che esegue lo script è root e, in caso contrario, mostra un messaggio ed esce dallo script.
functions.shcheck_root () {
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root"
exit 1
fi
}
Ora in ogni script che deve essere eseguito solo dall'utente root, procura semplicemente functions.sh
file e chiama la funzione:
#!/usr/bin/env bash
source functions.sh
check_root
echo "I am root"
Se esegui lo script sopra come utente non root, stamperà "Questo script deve essere eseguito come root" ed esce.
Il vantaggio di questo approccio è che i tuoi script saranno più piccoli e più leggibili, puoi riutilizzare lo stesso file di funzione quando necessario e, nel caso in cui dovessi modificare una funzione, modificherai solo un file.
File di configurazione Bash #
Con il source
comando, puoi anche leggere le variabili da un file. Le variabili devono essere impostate utilizzando la sintassi Bash, VARIABLE=VALUE
.
Creiamo un file di configurazione di prova:
config.shVAR1="foo"
VAR2="bar"
Nel tuo script bash, usa il source
comando per leggere il file di configurazione:
#!/usr/bin/env bash
source config.sh
echo "VAR1 is $VAR1"
echo "VAR2 is $VAR2"
Se esegui lo script, l'output sarà simile a questo:
VAR1 is foo
VAR2 is bar
Conclusione #
In questa guida hai imparato a usare il source
comando integrato negli script della shell.
Se hai domande o feedback, sentiti libero di lasciare un commento.