/bin/sh
foi bash por anos no Ubuntu e FWIW é ksh93 no mais recente versões do Solaris , então a maioria das coisas deve funcionar. Se alguma coisa, os modos POSIX em shells avançados como o ksh são mais liberais do que o dash, então alguns novos recursos ainda estão disponíveis:
~ for shell in dash bash ksh zsh; do ARGV0=sh POSIXLY_CORRECT=1 $shell -c 'echo -n $0 {a,b,c}; [[ -z $POSIXL_CORRECT ]] && echo typo'; done
sh {a,b,c}sh: 1: [[: not found
sh a b ctypo
-n sh a b c
typo
sh {a,b,c}typo
$ for shell in dash bash ksh zsh; do ARGV0=sh $shell -c 'echo -n $0 {a,b,c}; [[ -z $POSIXL_CORRECT ]] && echo typo'; done
sh {a,b,c}sh: 1: [[: not found
sh a b ctypo
sh a b ctypo
sh {a,b,c}typo
Eu não acho que nenhum script de um pacote no Ubuntu dependa da falta do traço da expansão de contraventamento. Uma varredura rápida de scripts no meu /usr/bin
não mostra nada disso. Existem outros recursos modernos disponíveis nos modos POSIX do ksh e do bash, por isso é difícil prever sem realmente executar os scripts com esses shells.
No entanto, não vejo nenhum benefício em fazer /bin/sh
ksh.