Com assignar la sortida d'una ordre de Linux a una variable


Quan executeu una ordre, produeix algun tipus de sortida: se suposa que el resultat d'un programa produeix o missatges d'estat/error dels detalls d'execució del programa. De vegades, és possible que vulgueu emmagatzemar la sortida d'una ordre en una variable per utilitzar-la en una operació posterior.

En aquesta publicació, revisarem les diferents maneres d'assignar la sortida d'una ordre d'intèrpret d'ordres a una variable, especialment útil per a l'escriptura de l'intèrpret d'ordres.

Per emmagatzemar la sortida d'una ordre en una variable, podeu utilitzar la funció de substitució d'ordres de shell als formularis següents:

variable_name=$(command)
variable_name=$(command [option ...] arg1 arg2 ...)
OR
variable_name='command'
variable_name='command [option ...] arg1 arg2 ...'

A continuació es mostren alguns exemples d'ús de la substitució d'ordres.

En aquest primer exemple, emmagatzemarem el valor de l'ordre qui (que mostra qui està connectat al sistema) a la variable usuari CURRENT_USERS:

$ CURRENT_USERS=$(who)

A continuació, podem utilitzar la variable en una frase que es mostra amb l'ordre echo de la següent manera:

$ echo -e "The following users are logged on the system:\n\n $CURRENT_USERS"

A l'ordre anterior: el senyalador -e significa interpretar qualsevol seqüència d'escapada (com ara \n per a la nova línia) utilitzada. Per evitar perdre temps i memòria, només cal que realitzeu la substitució d'ordres dins de l'ordre echo de la manera següent:

$ echo -e "The following users are logged on the system:\n\n $(who)"

A continuació, per demostrar el concepte utilitzant la segona forma; podem emmagatzemar el nombre total de fitxers al directori de treball actual en una variable anomenada FILES i fer-ne ressò més tard de la següent manera:

$ FILES=`sudo find . -type f -print | wc -l`
$ echo "There are $FILES in the current working directory."

Això és tot de moment, en aquest article, hem explicat els mètodes per assignar la sortida d'una ordre de shell a una variable. Podeu afegir els vostres pensaments a aquesta publicació a través de la secció de comentaris a continuació.