Búsqueda de sitios web

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


Cuando ejecuta un comando, produce algún tipo de resultado: ya sea el resultado de un programa que se supone que debe producir 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 utilizarla 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, específicamente útiles para propósitos de secuencias de comandos de shell.

Para almacenar la salida de un comando en una variable, puede utilizar la función de sustitución de comandos del shell en los siguientes formularios:

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 del uso de la sustitución de comandos.

En este primer ejemplo, almacenaremos el valor del comando who (que muestra quién ha iniciado sesión en el sistema) en la variable CURRENT_USERS del usuario:

CURRENT_USERS=$(who)

Luego podemos usar la variable en una oración mostrada usando el comando echo de esta 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 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, 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 hacer eco más tarde 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 para 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.