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ó.