sh
, o shell Bourne, é antigo . Seu comportamento é especificado pelo padrão POSIX . Se você quiser um novo comportamento, use bash
, o shell Bourne Again, que recebe novos recursos a cada momento. Em muitos sistemas, sh
é apenas bash
e bash
ativa um modo de compatibilidade quando executado com esse nome. No Ubuntu, sh
é dash
, o shell do Debian Almquist.
A expansão de chaves é relativamente nova nova funcionalidade e também não estaria disponível em programas mais antigos. Certamente não deveria estar em sh
.
A linha shebang só é respeitada se você chamar o script como um executável:
./myscript.sh
Eu posso dar um script a qualquer coisa e ainda tê-lo aberto em Python executando:
python myscript.sh
Veja estas excelentes perguntas sobre o Unix & amp; Linux: