Cómo asignar la salida de un comando de Linux a una variable


Cuando ejecuta un comando, produce algún tipo de salida: se supone que el resultado de un programa produce o mensajes de estado/error de los detalles de ejecución del programa. A veces, es posible que desee almacenar la salida de un comando en una variable para usarla en una operación posterior.

En esta publicación, revisaremos las diferentes formas de asignar la salida de un comando de shell a una variable, especialmente útil para el propósito de shell scripting.

Para almacenar la salida de un comando en una variable, puede usar la función de sustitución del comando de shell en los formularios a continuación:

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

A continuación se muestran algunos ejemplos de uso de la sustitución de comandos.

En este primer ejemplo, almacenaremos el valor del comando who (que muestra quién está conectado al sistema) en la variable CURRENT_USERS usuario:

$ CURRENT_USERS=$(who)

Luego podemos usar la variable en una oración que se muestra usando el comando echo de la siguiente manera:

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

En el comando anterior: la bandera -e significa interpretar cualquier secuencia de escape (como \ n para la nueva línea) utilizada. Para evitar perder tiempo y memoria, simplemente realice la sustitución del comando dentro del comando echo de la siguiente manera:

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

A continuación, para demostrar el concepto utilizando la segunda forma; podemos almacenar el número total de archivos en el directorio de trabajo actual en una variable llamada FILES y echo más adelante de la siguiente manera:

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

Eso es todo por ahora, en este artículo, explicamos los métodos de asignar la salida de un comando de shell a una variable. Puede agregar sus pensamientos a esta publicación a través de la sección de comentarios a continuación.