Bash Come eseguire un comando in una variabile?
Il Novembre 22, 2021 da adminGli script Bash possono essere creati in una varietà di modi diversi e la maggior parte di noi ha familiarità con l’esecuzione dei semplici comandi all’interno di uno script Bash. Tuttavia, questi comandi possono anche essere incapsulati all’interno delle variabili in Bash. Questo processo è noto come sostituzione di comando ed è generalmente utilizzato per memorizzare l’output di un comando in una variabile in modo da non dover eseguire quel comando esplicitamente ancora e ancora, ma si può semplicemente accedere a quella variabile per ottenere l’output di quel comando quando si vuole. In questo articolo, vi mostreremo come questo può essere fatto.
Nota: Tutti gli scenari dimostrati di seguito sono stati eseguiti su Ubuntu 20.04. Tuttavia, funzioneranno esattamente allo stesso modo con qualsiasi altra versione di Linux.
Metodo di esecuzione di un comando in una variabile in Bash:
Per dimostrare il metodo di esecuzione di un comando in una variabile in Bash, vi presenteremo tre diversi scenari che sono i seguenti:
Esecuzione del comando “echo” memorizzato in una variabile:
Questo è lo scenario più semplice in cui il nostro obiettivo è eseguire il comando echo che è memorizzato in una variabile. Per farlo accadere, dovrai seguire la serie di passi menzionati qui sotto:
Passo # 1: Creare uno script Bash:
Devi creare un Bash Script nella tua cartella Home per cui devi cliccare sull’icona File Manager come puoi vedere dalla seguente immagine:
Ora trova uno spazio qualsiasi nella tua cartella Home e clicca con il tasto destro per lanciare un menu. Seleziona l’opzione Nuovo documento da questo menu e poi scegli l’opzione Documento vuoto dal menu a cascata. Facendo questo, creerai un nuovo documento nella tua cartella Home. Ora rinominate questo documento appena creato con qualsiasi nome di vostra scelta seguito dall’estensione .sh. Nel nostro caso, lo abbiamo chiamato CommandVar.sh.
Per scrivere uno script Bash in questo file, fate doppio clic su di esso per aprirlo e poi digitate lo script mostrato nell’immagine qui sotto nel vostro file Bash. Qui, la prima linea dello script cioè “#!/bin/bash” mostra che questo file è in effetti un file Bash. Poi abbiamo creato una variabile chiamata “test” e le abbiamo assegnato il valore “$(echo “Hi there!”)”. Ogni volta che vuoi memorizzare il comando in una variabile, devi digitare quel comando preceduto dal simbolo “$”. In questo caso, volevamo memorizzare il comando “echo” nella variabile “test”, quindi abbiamo semplicemente digitato il comando “echo” seguito da un messaggio casuale e l’abbiamo racchiuso tra parentesi tonde, e messo un simbolo “$” prima di esso. Così ora, se vogliamo eseguire questo comando “echo”, dovremo accedere alla variabile “test”. Quindi, per verificare se il comando “echo” memorizzato nella variabile “test” può essere eseguito con successo o meno, abbiamo stampato l’output della variabile “test” sul terminale facendo uso di un altro comando “echo”. Dopo aver digitato questo script, è necessario salvare il file e chiuderlo.
Step # 2: Esecuzione dello script Bash tramite il terminale:
Ora devi eseguire questo script tramite il terminale. Quindi, aprite il terminale in Ubuntu 20.04 e poi digitate il seguente comando:
Quando premete il tasto Invio per eseguire questo comando, sarete in grado di vedere il seguente output sul vostro terminale. Qui, la parte evidenziata dell’output è l’output del comando “echo” che è stato memorizzato nella variabile “test”.
Esecuzione del comando “seq” memorizzato in una variabile:
In questo scenario, stamperemo una sequenza di numeri usando il comando “seq” memorizzato in una variabile. Per farlo accadere, modificheremo lo script Bash creato in precedenza eseguendo i seguenti passi:
Passo # 1: Modificare lo script Bash creato in precedenza:
Aprire il file Bash che avete creato nel metodo precedente e digitare il seguente script in esso. Qui abbiamo creato una variabile chiamata “sequenza”. Il nostro obiettivo è quello di stampare i numeri da 1 a 10 usando il comando “seq”. Per fare ciò, abbiamo assegnato il valore “$(seq 1 10)” alla variabile “sequence”. Potete anche specificare qualsiasi altro intervallo di numeri di vostra scelta, se volete. Il primo numero dopo il comando “seq” indica il limite inferiore della sequenza, mentre il secondo numero si riferisce al limite superiore. Dopo aver scritto questo script, salvate il file e chiudetelo.
Step # 2: Esecuzione dello script Bash modificato tramite il terminale:
Ora esegui il tuo script Bash nello stesso modo spiegato sopra e sarai in grado di vedere la sequenza specificata sul tuo terminale come mostrato nell’immagine sottostante:
Esecuzione del comando ‘pwd’ memorizzato in una variabile:
Puoi anche stampare la tua directory di lavoro utilizzando il comando “pwd” memorizzato in una variabile. Per dimostrarlo, modificheremo ancora una volta lo script Bash creato sopra seguendo i passi menzionati qui sotto:
Step # 1: Modificare lo script Bash creato sopra:
Apri il file Bash che hai appena modificato e poi scrivi lo script mostrato nell’immagine seguente. In questo script, abbiamo creato una variabile chiamata “working_directory” e le abbiamo assegnato il valore “$(pwd)”. Il comando “pwd” memorizzerà semplicemente il suo output, cioè la directory di lavoro corrente, nella variabile “working_directory”. Per assicurarci che il comando “pwd” sia stato eseguito correttamente o no, abbiamo stampato il valore della variabile “working_directory” sul terminale utilizzando il comando “echo”. Ora salvate questo file e chiudetelo dopo averci scritto lo script Bash modificato.
Step # 2: Esecuzione dello script Bash modificato tramite il terminale:
Ora eseguite questo script Bash nello stesso modo spiegato sopra. L’output di questo script Bash vi mostrerà la directory di lavoro corrente. La parte evidenziata dell’output è infatti l’output del comando “pwd”.
Conclusione:
Questo articolo dà un’ottima idea di come si possa eseguire un comando memorizzato in una variabile in Bash e ottenere lo stesso output che si sarebbe ottenuto se si fosse eseguito il comando in modo indipendente.
Si tratta di uno script Bash modificato.
Lascia un commento