Ricerca nel sito web

Come assegnare l'output di un comando Linux a una variabile - bash


In Bash, è normale eseguire comandi Linux e catturarne l'output per un utilizzo successivo in uno script. Puoi assegnare l'output di un comando a una variabile utilizzando la sostituzione del comando, che è una funzionalità di Bash che ti consente di eseguire un comando e sostituirlo con il suo output. Esistono due modi per assegnare l'output a una variabile e questi sono:

  • Attraverso la sostituzione del comando

  • Attraverso i backtick

1: Come utilizzare la sostituzione dei comandi per assegnare l'output di un comando Linux a una variabile

Un modo per assegnare l'output di un comando Linux a una variabile in Bash è utilizzare la sostituzione dei comandi con la sintassi $() ed ecco la sintassi completa:

<variable-name>=$(command)

Ecco un esempio che è stato fatto per salvare l'output del comando nome host in una variabile utilizzando la sintassi indicata sopra:

#!/bin/bash

# Assign the output of the 'hostname' command to the 'find_hostname' variable

find_hostname=$(hostname)

# Print the value of the 'hostname' variable

echo "Your hostname is:” $find_hostname

In questo esempio, abbiamo utilizzato il comando hostname per ottenere il nome dell'host corrente e quindi abbiamo assegnato l'output alla variabile find_hostname utilizzando la sostituzione del comando. Infine, abbiamo stampato il valore della variabile find_hostname utilizzando il comando echo:

2: Come utilizzare i backtick per assegnare l'output di un comando Linux a una variabile

Un altro modo per assegnare l'output di un comando Linux a una variabile è utilizzare i backtick (`) invece delle parentesi e di seguito è riportata la sintassi:

<variable-name>=<`command`>

Per spiegare ulteriormente come utilizzare questo metodo ho fornito un codice bash di esempio che legge semplicemente il percorso o la directory corrente.

#!/bin/bash

# Assign the output of the 'hostname' command to the 'find_hostname' variable

find_hostname=`hostname`

# Print the value of the 'hostname' variable

echo "Your hostname is:" $find_hostname

In questo esempio, abbiamo utilizzato il comando pwd per ottenere la directory di lavoro corrente e quindi abbiamo assegnato l'output alla variabile current_dir utilizzando i backtick. Infine, abbiamo stampato il valore della variabile current_dir utilizzando il comando echo:

Conclusione

Assegnare l'output di un comando Linux a una variabile è un'attività comune negli script Bash e può essere eseguita utilizzando la sostituzione dei comandi con parentesi o apici inversi. Utilizzando queste tecniche, puoi acquisire l'output di un comando e utilizzarlo nei tuoi script per eseguire varie attività. Puoi utilizzare uno qualsiasi di questi tre metodi per assegnare l'output di un comando Linux a una variabile in Bash, a seconda delle tue esigenze e preferenze specifiche.

Articoli correlati: