Bash Shell Exec, Eval, Source - Qual è la differenza

Bash Shell Exec, Eval, Source - Qual è la differenza

Tra le molte caratteristiche dello scripting bash ci sono i comandi Exec, Eval e Ource, che possono essere utilizzati per eseguire comandi, eseguire script e impostare le variabili di ambiente. In questo articolo, discuteremo di ciascuno di questi comandi e di come possono essere utilizzati negli script bash.

Exec in Bash Scripting

Questo comando sostituisce il processo di corrente corrente con un nuovo processo in quanto può essere utilizzato per eseguire un nuovo comando nella stessa shell o per sostituire la shell corrente con una nuova. Ad esempio, per sostituire la shell corrente con una nuova shell bash, è possibile utilizzare il comando Exec Bash. Ciò creerà una nuova shell con lo stesso ambiente della shell corrente, ma qualsiasi modifica apportata nella nuova shell non sarà visibile nella vecchia shell.

Exec

Ecco il codice Esempio di script bash che utilizza questo comando Exec:

#!/Bin/Bash
Echo "Avvio della sceneggiatura ..."
ls -l
Echo "Script completato."

Il comando Exec viene utilizzato per sostituire il processo di shell corrente con un comando o uno script specificato, quindi in questo esempio, lo script stampa un messaggio utilizzando il comando Echo, quindi esegue il comando LS -l utilizzando EXEC. Poiché Exec sostituisce il processo corrente con LS -l, il seguente comando Echo non viene mai eseguito.

Eval in Bash Scripting

Il comando Eval viene utilizzato per valutare un comando che viene archiviato in una variabile di stringa in quanto è utile quando è necessario generare un comando in base all'input dell'utente o ad altre variabili. Ad esempio, se si dispone di un CMD variabile che contiene un comando, è possibile utilizzare il comando Eval $ CMD per eseguire il comando memorizzato nella variabile CMD.

Eval

Ecco il codice di esempio bash che utilizza questo comando Exec:

#!/Bin/Bash
# Esempio di comando Eval
cmd = "echo ciao, mondo!"
Eval $ CMD

Il comando Eval viene utilizzato per eseguire un comando shell costruito in modo dinamico in fase di esecuzione, quindi in questo esempio, la cmd variabile è impostata sulla stringa "Echo Hello, World!". Il comando Eval viene quindi utilizzato per eseguire il contenuto di CMD, che stampa il messaggio “Ciao, mondo!"Alla console.

Fonte negli script bash

Il comando di origine viene utilizzato per eseguire comandi memorizzati in un file ed è utile quando si dispone di uno script che imposta le variabili di ambiente o definisce le funzioni che si desidera utilizzare nella shell corrente corrente. Ad esempio, se hai uno script my_script.Sh che imposta le variabili di ambiente, è possibile utilizzare la sorgente di comando my_script.Sh per eseguire lo script e impostare le variabili di ambiente nella shell corrente.

fonte < file-name>

Ecco l'esempio che il codice bash esegue uno script shell all'interno di uno script usando il comando sorgente:

#!/Bin/Bash
# Esempio di comando di origine
fonte ./Bashfile2.sh

Il comando di origine viene utilizzato per eseguire i comandi in uno script specificato all'interno dell'ambiente di shell corrente in modo che in questo esempio lo script my_script.SH viene eseguito usando la fonte. I comandi in bashfile2.SH sono eseguiti nell'ambiente di shell corrente, che può essere utile per impostare le variabili di ambiente o definire le funzioni che verranno utilizzate.

Conclusione

Il bash fornisce potenti comandi come Exec, Eval e Origine che possono essere utilizzati per gestire i sistemi Linux. Il comando Exec viene utilizzato per sostituire il processo corrente con uno nuovo, il comando Eval viene utilizzato per valutare un comando memorizzato in una variabile e il comando di origine viene utilizzato per eseguire comandi memorizzati in un file. Questi comandi possono essere molto utili nelle attività di script e automazione e possono aiutarti a lavorare in modo più efficiente nella shell bash.