retorna 0 se a condição é verdadeira
e 1 caso contrário
Testando arquivos:
-s arq Arquivo não está vazio
-r arq Arquivo pode ser lido
-w arq Arquivo pode ser escrito
-x arq Arquivo é executável
-f arq Arquivo existe e é normal
-d arq Arquivo é um diretório
-c arq Arquivo é especial (caracter)
-b arq Arquivo é especial (bloco)
-p arq Arquivo é um pipe nomeado
-u arq Arquivo é SUID
-g arq Arquivo é SGID
Testando sequências de caracteres:
-z str String vazia
str String vazia
-n str String não vazia
str1 = str2 Igualdade
str1 != str2 Desigualdade
Testando inteiros:
i1 -eq i2 Igualdade
i1 -ne i2 Desigualdade
i1 -gt i2 Maior
i1 -ge i2 Maior ou igual
i1 -lt i2 Menor
i1 -le i2 Menor ou igual
Operadores lógicos:
true Verdadeiro
false Falso
! cond Negação
c1 -a c2 Conjunção
c1 -o c2 Disjunção
Exemplos:
[ "$1" = "la" ]
[ $1xyz = stringxyz ]
[ "$1" = "la" -a -d /devices ]
Padrões aceitos: números (0, 1, ...) e
strings ('str', ...)