Espansione del comando Bash

Espansione del comando Bash

Quando si lavora con i comandi in bash, raggiungerai un punto in cui è necessario utilizzare l'output di un determinato comando come valore per una determinata variabile. L'espansione del comando è un termine usato per fare riferimento Sostituzione del comando dove l'output di un determinato comando viene utilizzato al posto del comando. Idealmente, il comando viene eseguito e il suo valore sostituisce il comando e, nella maggior parte dei casi, viene utilizzato quando si lavora con le variabili.

L'espansione del comando bash è utile quando è necessario utilizzare una data variabile i cui valori devono ancora essere conosciuti a meno che il comando esegua prima. Questa guida copre vari esempi per aiutare a capire come lavorare con la sostituzione del comando bash.

Come usare l'espansione del comando bash

L'espansione del comando può essere utilizzata in due modi.

Puoi racchiuderlo come nella sintassi seguente:

$ (comando)

In alternativa, puoi usare Backticks, come mostrato di seguito.

'comando'

Quando si utilizza la sostituzione bash in uno script, l'output del comando sostituirà il comando quando esegue.

Ad esempio, se è necessario scrivere un comando che stampa la data e l'ora correnti e il tempo di up -up durante l'esecuzione dello script, potremmo avere uno script scritto come mostrato di seguito.

Abbiamo creato una variabile nello script, ma il suo valore dipende dall'output del comando. Inoltre, stiamo stampando il valore della variabile dichiarata usando il eco comando. Questo è un caso di sostituzione del comando bash. Eseguiamo il comando e vediamo come si comporta.

Si noti che qualsiasi linee finale durante la stampa dell'uscita viene eliminata quando si utilizza la sostituzione del comando. Ad esempio, usiamo il comando seq per stampare i valori da 1 a 10, saltando due valori. Se eseguiamo il comando di seguito, noteremo che ogni nuova riga viene spiegata.

$ seq 1 2 10

Tuttavia, se si utilizza la sostituzione del comando per lo stesso comando, l'output sarebbe diverso quando le nuove righe vengono eliminate.

Espansione del comando bash sui loop

Se si dispone di un determinato script che dovrebbe eseguire un determinato compito, ma i valori di quella variabile dipendono dall'output del comando, è possibile utilizzare l'espansione bash. Ad esempio, se avessi un file contenente i nomi degli indirizzi IP, è possibile eseguire un per loop per eseguire una determinata attività in base ai nomi di quel file.

Lo script in basso apre un file usando il gatto comanda e stampa il contenuto del file sulla shell corrente.

Ecco l'output che conferma che è possibile utilizzare la sostituzione bash con loops.

Espansione del comando ed espansione dei parametri

L'espansione del comando bash è quasi simile all'espansione dei parametri. Nella sostituzione bash, usiamo $ (), Mentre per l'espansione dei parametri, usiamo $ . L'espansione dei parametri protegge una variabile dall'espansione dei comandi. Facciamo un esempio da capire.

Nell'esempio sopra, stiamo creando una variabile denominata data. Se fa eco alla variabile usando l'espansione dei parametri, otteniamo che stampiamo il valore della variabile seguito dalla parola aggiunta dopo il valore della variabile.

Tuttavia, nell'esempio della sostituzione del comando, vediamo che il comando data, che stampa la data e l'ora correnti, viene sostituita e l'uscita viene utilizzata al posto del comando.

Quindi, se non vuoi che una variabile venga trattata come un caso di espansione del comando, usa $ anziché $ ().

Conclusione

L'espansione del comando bash è uguale alla sostituzione del comando. Questa guida ha spiegato cosa significa espansione del comando e abbiamo fornito vari esempi per aiutare a capire come puoi usare l'espansione dei comandi per i tuoi script bash. Il takeaway chiave è che la sostituzione del comando è quando l'output di un comando viene utilizzato al posto del comando stesso quando si ottiene o si imposta il valore di una variabile.