O que é o comando '['? [duplicado]

4

Eu vi tanto no Cygwin quanto no Linux o comando [ em /bin . Sempre que eu executo, recebo um erro dizendo: missing ] .

Eu nunca entendi o que este comando faz, eu apenas um dia descobri que ele queria descobrir o que ele faz (e se é útil ou não)

OBSERVAÇÃO: eu teria verificado a entrada man , como resposta, mas, infelizmente, não há entrada nela para [

    
por inixsoftware 15.03.2014 / 00:10

3 respostas

7

Este é o comando test .

Por exemplo, descubra se /etc/passwd existe ou não:

[ -f /etc/passwd ] && echo "Yes" || echo "No"

Regularmente você escreve da seguinte forma:

if test -f /etc/passwd
then
  echo "Yes"
else
  echo "No"
fi
Read 
    
por 15.03.2014 / 00:21
2

Você já viu / notou se as condições em scripts de shell? Eles são da forma:
[ -e $FILE ]

Nesses casos, a funcionalidade de verificação de condição é normalmente incorporada ao shell interpretando esses scripts, geralmente bash ou sh-aliased-bash.

Os binários que você vê servem a mesma finalidade, mas estão presentes para que as verificações de condição possam ser usadas em shells sem tal funcionalidade integrada.

    
por 15.03.2014 / 00:20
2

O [colchete é outra maneira de chamar o comando test .

Consulte a página Man do teste para mais informações:)

    
por 15.03.2014 / 00:20