Il comando sorgente in Linux

Il comando sorgente è un comando di shell integrato utilizzato per leggere ed eseguire comandi da un file all’interno della sessione di shell corrente. Il comando source è comunemente usato per mantenere/modificare la variabile d’ambiente nella shell corrente. In breve, il provisioning di uno script eseguirà i comandi di esecuzione guscio attuale.
Il comando source è utile per:
- Aggiornamento dell’ambiente shell corrente
- Per eseguire uno script di shell nel contesto dell’ambiente corrente
- Per importare una funzione di shell nel tuo script
- Legge le variabili da uno script di shell
Sintassi per il comando source
La sintassi per questo comando di shell integrato è leggibile dall’uomo. È richiesto un file e, se vengono forniti argomenti, fungono da parametri posizionali per lo script passato.
source FILENAME [ARGUMENTS]
Il . (punto) può essere utilizzato anche come alternativa al comando source.
. FILENAME [ARGUMENTS]
Come usare il comando source
Qui spiego alcuni esempi pratici in cui è possibile applicare il comando source.
1. Aggiorna il tuo attuale ambiente di shell
Come utente, puoi definire un alias nell’ambiente shell corrente. Per definire uno per ls -l
genere:
alias ll="ls -l"
Per usarlo digita:
ll
Sebbene quanto sopra elenchi i file nella directory corrente in formato lungo, funziona solo per la sessione di shell corrente. Per rendere permanenti le modifiche, apri il file ~/.bashrc e aggiungi:
alias ll="ls -l"
Per aggiornare la shell corrente tipo di ambiente:
source ~/.bashrc
2. Eseguire uno script shell nel contesto dell’ambiente shell corrente
Uno script di shell non è a conoscenza delle variabili definite come utente nell’ambiente di shell corrente. Il comando source può essere utilizzato per eseguire lo script della shell nel contesto della sessione corrente.
Per definire un tipo di variabile temporanea:
WEBSITE = example.com
Per creare un tipo di script personalizzato:
#!/bin/bash echo $WEBSITE
Salva il file. Per eseguirlo nel contesto del tipo di sessione di shell corrente:
source ./myscript.sh
L’output è mostrato di seguito.
example.com
3. Importare una funzione di shell
Per definire un tipo di script di shell personalizzato:
!#/bin/bash foo() { echo "test" }
Salva quanto sopra come script.sh.
Per importare la funzione dallo script sopra nel tipo di sessione shell corrente:
source script.sh
Usare foo
tipo di funzione:
foo
L’output è mostrato di seguito.
test
4. Leggere le variabili da uno script di shell
Per creare uno script di shell con alcune variabili, digitare:
#!/bin/bash a=1 b=2 c=3
Per leggere le variabili da un altro tipo di script di shell:
#!/bin/bash source abovescript.sh echo $a, $b, $c
L’output dovrebbe essere:
1, 2, 3
5. Leggere ed eseguire i comandi
Il comando source può leggere ed eseguire comandi da un file. Prendiamo un file di testo con una serie di comandi.
Ad esempio, il file commands.txt ha il seguente contenuto:
pwd
date
Uscita sorgente
$ source firstexample.txt /home/developer Fri Feb 25 11:10:11:09 GMT 2021
6. Passa argomenti alle funzioni
Questa sezione descrive come passare il parametro della funzione e la stessa funzione che possiamo riutilizzare tramite il comando source.
funzioni.sh
!/usr /bin/bash var1=$1 var2=$2
eseguire.sh
!/usr/bin/bash source functions.sh 10 AA echo “var1 = $var1” echo “var2 = $var2”
Esci.sh
var1 = 10 var2 = AA
Conclusione
Il comando source ha valutato lo script nella shell corrente, mentre il comando exec viene eseguito in una nuova shell.
Attraverso questo articolo, hai appreso quattro esempi pratici del comando source. Mentre tutti sono utili, il più importante per te come utente è il primo.