-
testé um shell embutido que (obviamente) testa para alguma condição dada. Algumas shells mais antigas precisam de um comando especial. Então você encontrará também um programa em/usr/bin/test. -
[também é um programa para testar alguma condição. Este software também precisa de um colchete de fechamento e você pode encontrá-lo em/usr/bin/[. -
[[…]]é uma alternativa parateste[. Foi desenvolvido para o shell Korn (ksh). Mas você também o encontra em versões Bash maiores que 2 e no Z Shell. Os colchetes duplos possuem alguns recursos interessantes:- O shell não faz nenhuma divisão de palavras ou expansão de nome de arquivo.
- Você não precisa de citações.
- Em vez de
-a(AND) ou-o(OR), você pode usar&&ou||. - O
=pode fazer muito mais.
-
((…))é equivalente alet. Então, basicamente((expression))é o mesmo quelet "expression". No entanto, comlet, você pode usar mais de uma expressão, mas as chaves duplas permitem apenas uma expressão. -
$((…))(e também$[…]) faz algum cálculo. Você shell tenta calcular a expressão dentro das chaves e substitui a expressão com o resultado. Então,echo $((1+1))leva aecho 2. Então suas conchas imprimem o número 2.
Sempre que você quiser comparar dois números, use a opção com um traço e duas letras ( -ge , -lt etc.). Se você quiser comparar strings, use = ou != .
Sua pergunta sobre o escape é bem difícil de responder. Porque depende do software que você usa além do shell. Então, por exemplo, grep e grep -E precisam de escape diferente. Esse também é o caso de sed , awk e outros. Então a melhor opção é dar uma olhada na manpage. Depois de algum tempo você se acostuma e sabe quando usar o escape.