Para iniciantes, se você puder supor que o Bash está pré-instalado (o que, em meu conhecimento, é o caso em todos os sistemas listados), use o seguinte hashbang para ser compatível:
#!/usr/bin/env bash
isso invoca o que quer que bash
seja configurado, não importa se é em /bin
ou /usr/local/bin
.
Enquanto na maioria dos sistemas em uma ampla variedade (incluindo AIX, Solaris, vários tipos de BSD), bash
foi parar em locais diferentes, env
sempre foi em /usr/bin/env
. O truque, no entanto, não é meu, mas do autor do livro de receitas Bash.
De qualquer forma, sim, o Bash permitiria que você usasse alguns recursos "modernos" que tornam sua vida mais fácil.
Por exemplo, os colchetes duplos:
[[ -f "/etc/debian_version" ]] && echo "This is a Debian flavor"
Considerando que nos dialetos de conchas tradicionais você teria que recorrer a:
test -f "/etc/debian_version" && echo "This is a Debian flavor"
mas o melhor sobre os colchetes duplos é que eles permitem expressões regulares para correspondência. O Wiki do Bash Hackers lhe dará muitos truques nessa direção.
Você também pode usar expressões bastante convenientes como $((2**10))
ou outras expressões aritméticas em linha com a sintaxe $((expression))
.
Usar backticks para subshells é bom, embora um pouco desatualizado. Mas os recursos de aninhamento das invocações de $(command ...)
são muito mais convenientes, já que você não terá que escapar de muitas coisas em diferentes níveis de subshell.
Estas são apenas algumas das coisas que o Bash lhe dá sobre a tradicional sintaxe comum do POSIX sh
.
Mas se você quiser mais poder no shell (não apenas em scripts), também dê uma olhada em zsh
.