establecer la salida de un comando en una variable

establecer la salida de un comando en una variable

¿Cómo puedo poner la salida de head -15 textfile.txtuna variable $Xpara usarla en un ifcomando como este?

 if $X = 'disabled' then

?

Respuesta1

x="$(head -15 testfile.txt)"
if [ "$x" = disabled ]
then
    echo "We are disabled"
fi

Generalmente, cada vez que desee capturar la salida de un comando en una variable de shell, utilice el formulario: variable="$(command args ...)". La variable=parte es asignación. La $(...)pieza es la sustitución de comandos.

También tenga en cuenta que el shell no realiza ifdeclaraciones en el formulario if $X = 'disabled'. El shell espera que un comando siga ify evaluará el código de retorno de ese comando. En el caso anterior, ejecuto el testcomando que puede escribirse como test ...o [ ... ].

Muchos consideran que es una buena práctica utilizar variables en minúsculas para los scripts de shell. Esto se debe a que las variables definidas por el sistema están en mayúsculas y no desea sobrescribir ninguna accidentalmente. Por otro lado, no se llama a ninguna variable del sistema, Xpor lo que no es un problema real aquí.

información relacionada