O que é / usr / bin / [?

21

Eu estava apenas bisbilhotando em / usr / bin e encontrei um arquivo binário ELF chamado [. /usr/bin/[. Eu nunca ouvi falar desse arquivo e meu primeiro pensamento foi que era uma maneira inteligente de ocultar um programa, possivelmente um cavalo de Tróia. No entanto, está presente em todos os meus servidores CentOS e parece não ter entrada manual. Posso arriscar um palpite sobre o que é, mas estava procurando uma resposta mais autorizada ...

Josh
fonte

Respostas:

23

É uma forma alternativa do comando 'test'. Usado principalmente em scripts.

ie

if [ $VAR ]
then
    echo $VAR exists!
fi
Zypher
fonte
3
Mas, ao contrário do teste, é necessário que o último argumento seja a]
Florian Diesch 5/05
4
[ é um bash embutido, mas também é test. nem todas as conchas são criadas da mesma forma - em muitas delas, test(e [) não são construídas.
Mo.
2
Existe um bash embutido, ou pelo menos, meu sistema está agindo como se houvesse. [--help fornece uma entrada diferente de / usr / bin / [--help
Matt Simmons
3
test e [são integrados ao bash, mas não necessariamente a todos os outros shells. Você pode sair temporariamente do caminho e executar um script bash que use qualquer um deles e verá que o script ainda funciona.
Zoredache 5/05
3
@ Josh: uma vez em outro milênio, o shell Bourne não tinha o operador de teste incorporado. Era um comando regular como qualquer outro; e / bin / test foi vinculado a / bin / [para oferecer conveniência notável.
Jonathan Leffler
8

É o que você chama quando usa algo como

if [ -e foo ]; then ...

em um script de shell (mas a maioria dos shells o tem como um buildin hoje em dia). O teste man deve fornecer os documentos.

Florian Diesch
fonte
Eu aceitaria sua resposta, mas Zypher vencê-lo a ele por alguns segundos ... desculpe :-)
Josh
2

Como outros apontaram, [é o utilitário de avaliação de condições do shell - teste.

De fato, há uma página de manual para isso!

$ man [

deve fornecer mais detalhes sobre o colchete de abertura.

Btw, no OS X, [está localizado em /bin/[:)

Devy
fonte