Um script bash é um script interpretado pelo Bourne-Again SHell e, portanto, é um script de shell. Pode ou não ser executado com sucesso por outros shells. Se você usar a sintaxe bash -específica, não poderá ter certeza de que ela será executada com outros shells.
Se você quiser escrever um script que possa ser interpretado por cada shell, você deve usar a sintaxe descrita no padrão POSIX em Linguagem de comandos do shell . É claro que nem todas as granadas honram o padrão POSIX, mas isso é o melhor que você pode fazer. Tais scripts podem ser muito portáveis e podem rodar em muitos Linux e * nixes da mesma maneira sem gerar erros.
Muitas shells e ferramentas de linha de comando procuram por uma variável de ambiente chamada $POSIXLY_CORRECT . Se isso for definido, essas ferramentas se comportarão como uma ferramenta em conformidade com o posix se comportaria.
Outra tentativa é o sinalizador --posix . Por exemplo, o GNU sed tem um sinalizador chamado --posix , que desabilita todas as extensões GNU e sed se comporta de maneira semelhante a um posix sed .
bash suporta as variáveis --posix e $POSIXLY_CORRECT .
Se você escrever seus scripts dessa maneira e testá-los com shells compatíveis com posix, você estará no melhor caminho.