testé um shell interno que (obviamente) testa alguma condição. Algumas conchas 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 suporte de fechamento e você pode encontrá-lo em /usr/bin/[.
[[…]]é uma alternativa para teste [. Foi desenvolvido para o shell Korn ( ksh). Mas você também o encontra nas versões do Bash maiores que 2 e no Z Shell. Os colchetes duplos têm alguns recursos bacanas:
- O shell não faz divisão de palavras ou expansão de nome de arquivo.
- Você não precisa citar.
- Em vez de
-a(AND) ou -o(OR), você pode usar &&ou ||.
- O
=pode fazer muito mais.
((…))é equivalente a let. Então basicamente ((expression))é o mesmo que let "expression". No entanto, letvocê pode usar mais de uma expressão, mas os colchetes duplos permitem apenas uma expressão.
$((…))(e também $[…]) faz algum cálculo. Seu shell tenta calcular a expressão dentro dos chavetas e substitui a expressão pelo resultado. Então echo $((1+1))leva a echo 2. Então suas conchas imprimem o número 2.
Sempre que quiser comparar dois números, use a opção com um traço e duas letras ( -ge, -ltetc.). Se você quiser comparar strings, use =ou !=.
Sua pergunta sobre escapar é bastante difícil de responder. Porque depende do software que você usa além do shell. Então, ou seja, grepe grep -Eprecisa escapar diferente. Este é também o caso com sed, awke outros. Portanto, a melhor opção é dar uma olhada na página de manual. Depois de algum tempo, você se acostuma e sabe quando usar o escape.