x="$(head -15 testfile.txt)"
if [ "$x" = disabled ]
then
echo "We are disabled"
fi
Geralmente, sempre que você quiser capturar a saída de um comando em uma variável do shell, use o formulário: variable="$(command args ...)"
. A parte variable=
é atribuição. A parte $(...)
é a substituição de comando.
Observe também que o shell não faz as declarações if
no formato if $X = 'disabled'
. O shell espera que um comando siga o if
e o shell avaliará o código de retorno desse comando. No caso acima, executo o comando test
, que pode ser escrito como test ...
ou [ ... ]
.
Muitos consideram práticas recomendadas usar variáveis em minúsculas para scripts de shell. Isso ocorre porque as variáveis definidas pelo sistema são maiúsculas e você não deseja sobrescrever acidentalmente uma. Por outro lado, não existe uma variável do sistema chamada X
, então não é um problema real aqui.