Qual è la differenza tra l'approvvigionamento e l'esecuzione di uno script di shell

Qual è la differenza tra l'approvvigionamento e l'esecuzione di uno script di shell
Nei sistemi operativi simili a Unix, uno script di shell è un file contenente una serie di comandi che vengono interpretati ed eseguiti dal programma Shell. Quando si tratta di eseguire uno script di shell, ci sono due modi principali per farlo: approvvigionamento ed esecuzione. Sebbene possano sembrare simili, hanno effetti diversi sull'attuale sessione di shell e le variabili di ambiente, questo articolo elaborerà le differenze tra i due metodi.

Qual è la differenza tra l'approvvigionamento e l'esecuzione di uno script di shell

Per comprendere la differenza tra entrambi i modi in cui si deve prima avere una solida conoscenza per usare entrambi i metodi, quindi prima abbiamo la loro definizione di base uno per uno:

Sourcing uno script di shell

Sourcing uno script di shell è un modo per eseguire uno script nell'ambiente di shell corrente. Tutti i comandi di uno script vengono eseguiti se vengono digitati direttamente nell'interfaccia della riga di comando e l'approvvigionamento di uno script fa la stessa cosa. Per questo motivo fornisce un'opzione allo script per modificare le variabili di ambiente e impostare le opzioni di shell nella shell corrente.

Per ulteriori illustrazioni ho realizzato un file di test per Bash Script e quindi eseguito, ecco il codice per il file bash che ho creato:

# Bashfile.sh
esporta my_info = "ciao linuxhint"

Qui ho creato una variabile ambientale che è my_info che ha Ciao Linuxhint memorizzato in esso e quindi eseguito usando la sintassi data:

.

Da quando ho creato un file chiamato Bashfile.Sh così ho usato la sintassi sopra in questo modo:

. Bashfile.sh

Una volta eseguito il file, ho chiamato la variabile ambientale per vedere ciò che viene archiviato su di esso e restituisce il valore memorizzato in esso, il che mostra chiaramente che le modifiche alle variabili di ambiente persistono nella shell corrente:

Esecuzione di uno script di shell

L'esecuzione di uno script di shell è un modo per eseguire uno script in una shell separata. Quando viene eseguito uno script, viene creata una nuova shell, lo script viene eseguito in quella shell e la shell termina al termine dello script. Ciò dimostra che eventuali modifiche apportate alle variabili di ambiente o alle opzioni di shell nello script non persistono dopo che lo script è finito. Per ulteriori illustrazioni ho realizzato un file di test per Bash Script e quindi eseguito, ecco il codice per il file bash che ho creato:

# Bashfile.sh
esporta my_info = "ciao linuxhint"

Qui ho appena creato una variabile ambientale che è my_info che ha Ciao Linuxhint memorizzato in esso e quindi eseguito usando la sintassi data:

./

Da quando ho creato un file chiamato Bashfile.Sh così ho usato la sintassi sopra in questo modo:

./Bashfile.sh

Una volta eseguito il file, ho chiamato la variabile di ambiente per vedere ciò che viene archiviato su di esso e restituisce uno spazio vuoto che mostra chiaramente che le modifiche apportate alle variabili di ambiente o alle opzioni di shell nello script non persistono dopo che lo script è terminato:

Per illustrare ulteriormente la differenza lì la tabella indicata di seguito che individua alcune delle differenze chiave tra l'approvvigionamento e l'esecuzione di un file:

Fattori Esecuzione di uno script di shell Sourcing uno script di shell
Alias ​​e funzioni Gli alias e le funzioni persistono solo nella shell della sceneggiatura. Gli alias e le funzioni persistono nella shell corrente.
Ambiente Modifiche alle variabili di ambiente persistono solo nella shell della sceneggiatura. Le modifiche alle variabili di ambiente persistono nella shell corrente.
Sintassi ./script-name.Sh o Bash Script-Name.sh . script-name.SH o SOURCE Script-Name.sh
Utilità principale Esegui uno script autonomo senza influire sulla shell corrente. Imposta le variabili di ambiente o gli alias per la shell

Conclusione

Esistono due modi per eseguire lo script bash uno è approvare e l'altro è eseguendolo entrambi i modi in cui hanno il proprio significato. La differenza principale tra i due è che l'approvvigionamento del file di script mantiene le modifiche alle variabili di ambiente nella shell corrente, mentre l'esecuzione dello script manterrà le modifiche.UN