Lo scripting della shell è comunemente usato per automatizzare cose in Linux. Viene utilizzato non solo per scopi di amministrazione del sistema e del server, ma anche dai normali utenti Linux per automatizzare le attività quotidiane sui loro sistemi.
Uno script di shell non è altro che una sequenza di comandi; che un interprete della riga di comando (es. Bash , Zsh ) correrà. Insieme alla sequenza di comandi, ci sono funzionalità come loop , dichiarazioni condizionali , variabili che può essere utilizzato in uno script di shell.
Una di queste funzionalità è la memorizzazione di un intero comando in una variabile. Vediamo cosa intendiamo con questo e come si può fare.
Fondamentalmente, le shell di Linux ti consentono di memorizzare qualsiasi comando in una variabile, come una stringa. Ciò è utile per istruzioni complesse inline che coinvolgono più comandi, reindirizzamenti, ecc. Questa variabile può quindi essere passata al programma 'eval ' in modo che il contenuto della variabile venga eseguito come comando.
Ad esempio, per memorizzare l'output del comando 'cat test.txt | wc -l ' in una variabile chiamata 'cnt ', possiamo avere la seguente affermazione in test.sh file di script:
#!/bin/bash cnt="cat test.txt | wc -l"
Ora, per eseguire questo comando in qualsiasi momento, passiamo la variabile come argomento a "eval ', come mostrato di seguito:
#!/bin/bash cnt="cat test.txt | wc -l" eval $cnt
Salva ed esci dallo script.
Ora eseguiamo il comando e lo script stesso per verificarlo.
$ cat test.txt | wc -l $ chmod + test.sh $ ./test.sh
Nota :sostituisci test.sh con il nome del tuo script. Assicurati che il tuo file di script abbia i privilegi di esecuzione.
Come si vede nello screenshot qui sopra, entrambi i risultati sono gli stessi.
Conclusione
In questo articolo, abbiamo visto come memorizzare un comando Linux come variabile nello script della shell. Sebbene ciò sia stato mostrato nello script della shell, puoi anche fare lo stesso sulla riga di comando, quindi passare la variabile a "eval '.
Se hai domande o feedback, faccelo sapere nei commenti qui sotto!