
¿Cómo puedo poner la salida de head -15 textfile.txt
una variable $X
para usarla en un if
comando 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 if
declaraciones en el formulario if $X = 'disabled'
. El shell espera que un comando siga if
y evaluará el código de retorno de ese comando. En el caso anterior, ejecuto el test
comando 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, X
por lo que no es un problema real aquí.