Bash Come eseguire un comando in una variabile?

Bash How Execute Command Variable



Gli 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 del comando ed è generalmente usato per memorizzare l'output di un comando in una variabile in modo da non dover eseguire quel comando in modo esplicito ancora e ancora, ma puoi semplicemente accedere a quella variabile per ottenere l'output di quel comando quando vuoi. In questo articolo, ti mostreremo come farlo.

Nota: tutti gli scenari mostrati di seguito sono stati eseguiti su Ubuntu 20.04. Tuttavia, funzioneranno esattamente allo stesso modo anche 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, ti 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. Affinché ciò accada, dovrai seguire la serie di passaggi indicati di seguito:



Passaggio n. 1: creazione di uno script Bash:

Devi creare uno script Bash nella tua cartella Home per il quale devi fare clic sull'icona File Manager come puoi vedere dall'immagine seguente:





Ora trova uno spazio nella tua cartella Home e fai clic con il pulsante destro del mouse su di esso per avviare un menu. Seleziona l'opzione Nuovo documento da questo menu, quindi scegli l'opzione Documento vuoto dal menu a cascata. In questo modo creerai un nuovo documento nella tua cartella Home. Ora rinomina questo documento appena creato con un nome a tua scelta seguito dall'estensione .sh. Nel nostro caso, l'abbiamo chiamato CommandVar.sh.



Per scrivere uno script Bash in questo file, fai doppio clic su di esso per aprirlo e quindi digita lo script mostrato nell'immagine sottostante nel tuo file Bash. Qui, la prima riga dello script, ad esempio #!/bin/bash, mostra che questo file è in effetti un file Bash. Quindi abbiamo creato una variabile denominata test e le abbiamo assegnato il valore $(echo Ciao!). Ogni volta che vuoi memorizzare il comando in una variabile, devi digitare quel comando preceduto da un simbolo $. In questo caso, volevamo memorizzare il comando echo nella variabile di test, quindi abbiamo semplicemente digitato il comando echo seguito da un messaggio casuale e lo abbiamo racchiuso tra parentesi tonde e posizionato un simbolo $ prima di esso. Quindi ora, se vogliamo eseguire questo comando echo, dovremo accedere alla variabile di test. Pertanto, per verificare se il comando echo memorizzato nella variabile di test può essere eseguito con successo o meno, abbiamo stampato l'output della variabile di test sul terminale utilizzando un altro comando echo. Dopo aver digitato questo script, è necessario salvare il file e chiuderlo.

Passaggio n. 2: esecuzione dello script Bash tramite il terminale:

Ora devi eseguire questo script tramite il terminale. Quindi, apri il terminale in Ubuntu 20.04 e quindi digita il seguente comando al suo interno:

bashCommandVar.sh

Quando premerai il tasto Invio per eseguire questo comando, sarai in grado di vedere il seguente output sul tuo terminale. Qui, la parte evidenziata dell'output è l'output del comando echo che è stato memorizzato nella variabile di test.

Esecuzione del comando seq memorizzato in una variabile:

In questo scenario, stamperemo una sequenza di numeri utilizzando il comando seq memorizzato in una variabile. Per farlo accadere, modificheremo lo script Bash creato sopra eseguendo i seguenti passaggi:

Passaggio n. 1: modifica dello script Bash creato sopra:

Apri il file Bash che hai creato nel metodo sopra e digita il seguente script al suo interno. Qui abbiamo creato una variabile denominata sequenza. Il nostro obiettivo è stampare i numeri da 1 a 10 utilizzando il comando seq. Per fare ciò, abbiamo assegnato il valore $(seq 1 10) alla variabile di sequenza. Se lo desideri, puoi anche specificare qualsiasi altro intervallo di numeri a tua scelta. Il primo numero dopo il comando seq indica il limite inferiore della sequenza mentre il secondo numero si riferisce al limite superiore. Dopo aver digitato questo script, salva il file e chiudilo.

Passaggio n. 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 qui sotto:

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 passaggi indicati di seguito:

Passaggio n. 1: modifica dello script Bash creato sopra:

Apri il file Bash che hai appena modificato e quindi digita lo script mostrato nell'immagine seguente al suo interno. In questo script abbiamo creato una variabile denominata working_directory e le abbiamo assegnato il valore $(pwd). Il comando pwd memorizzerà semplicemente il suo output, ovvero la directory di lavoro corrente nella variabile working_directory. Per verificare se il comando pwd è stato eseguito correttamente o meno, abbiamo stampato il valore della variabile working_directory sul terminale utilizzando il comando echo. Ora salva questo file e poi chiudilo dopo aver digitato lo script Bash modificato al suo interno.

Passaggio n. 2: esecuzione dello script Bash modificato tramite il terminale:

Ora esegui questo script Bash nello stesso modo spiegato sopra. L'output di questo script Bash ti mostrerà la directory di lavoro corrente. La parte evidenziata dell'output è infatti l'output del comando pwd.

Conclusione:

Questo articolo fornisce un'ottima idea di come eseguire un comando memorizzato all'interno di una variabile in Bash e ottenere lo stesso output che avresti ottenuto se avessi eseguito il comando in modo indipendente.