[
é outro nome para test
. Todas as três linhas são linhas de comando que são executadas test
com algumas opções.
Na primeira linha, este é o teste padrão: [ 5 -gt 4 ]
é o mesmo que test 5 -gt 4
.
No segundo, a expressão é omitida, o que significa sair de false ( 0 arguments: Exit false (1)
).
Para o terceiro caso, você está usando o GNU coreutils. No GNU, test
o texto de ajuda contém esta nota:
NOTE: [ honors the --help and --version options, but test does not.
test treats each of those as it treats any other nonempty STRING.
Esta é uma extensão não POSIX ; a motivação parece ser a test
necessária para tratar esses argumentos como seqüências de caracteres como qualquer outra. [
é capaz de distinguir o caso opcional do caso de cadeia pela presença do ]
colchete de fechamento .
Observe que seu shell provavelmente fornecerá o seu próprio [
e, portanto, você precisará /bin/\[
usar esta versão.