Pergunta

Olhando no diretório GnuWin32 / bin, há um arquivo de programa de aparência estranha chamado [.exe

Eu não poderia encontrá-lo na documentação, gnuwin32.sourceforge.net ou em uma pesquisa no google, então eu corri isso e tenho:

$ [
[: missing `]'
$

então, fui] como um parâmetro e tem

$ [ ]

$

Ele não reclamou, então eu assumi que era no caminho certo. Eu tentei:

$ [ hello ]

novamente, sem queixas. então eu tentei uma expressão aritmética:

$ [ 1 + 1 ]
[: +: binary operator expected
$

Eu tentei um monte de combinações diferentes, incluindo o prefixo e postfix notação mas nada parecia funcionar. O que faz esta coisa fazer?

Foi útil?

Solução

É usado para avaliar condicional expressões.
É equivalente a (possivelmente um link simbólico para?) O executável test.
A página de manual é aqui .

Você pode ver isso em um monte de scripts bash:

if [ "$LOGNAME" = "scott" ]
then
    echo "Logged in as Scott"
else
     echo "incorrect user"
fi

O engraçado é que, a [ não é parte da linguagem bash, que é na verdade um executável cujo código de retorno é usado pelo 'se'. Esta é a razão pela qual o espaço após o [ e seu primeiro argumento é obrigatória -. Se ele iria ser omitido, o script seria tentar executar ["$LOGNAME" e falham

Você não pode fazer operações aritméticas com ele - uso expr para que (ver aqui ). No entanto, você pode testar para uma ampla gama de propriedades do arquivo (ela existe? Que tipo é? Etc), bem como operadores de comparação utilização em cordas e números.

Outras dicas

test a

==

[ a ]

É apenas açúcar

Edit: Para esclarecer, que é a sintaxe condicional, por exemplo, [ "A" = "a"]

Outra resposta já mencionado, é o mesmo que test. Em bash, é também um embutido, para que possa obter a ajuda para ele com o builtin help (help test).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top