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