configuração de saída de um comando para uma variável [duplicada]

3

Como posso colocar a saída de head -15 textfile.txt em uma variável $X para usá-la em um comando if da seguinte forma:

 if $X = 'disabled' then

?

    
por user62511 28.03.2014 / 19:59

1 resposta

3
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.

    
por 28.03.2014 / 20:02