あなたの質問の文は間違っています。Solarisバージョン10までは、レガシーの真のBourneシェルをとして提供しています/bin/sh。これは、異なるシェルで失敗する可能性のある古いスクリプトとの互換性を壊さないために行われました。それ以外の場合、この選択は非常にイライラしました。
Solaris 11を含む残りのUnixおよびUnix系リリースのほとんどではないにしても、POSIXは準拠していないレガシーBourneシェルではなくPOSIXシェルを起動するコマンドを/bin/sh要求するため、POSIX互換シェルを提供しshます。/bin/sh一般的には:
ksh88またはksh93商用Unix実装上
- 変更さ
bashれたOS/X(以前はzsh)
ashまたはpdksh他の派生BSDs
bashまたはdashGnu / Linuxディストリビューション。
これは必ずしもリンクではありませんが、Gnu / Linux以外の多くのシステムで実際の実行可能ファイルにすることができます。
興味深いことに、あなたの質問に対する最も賛成の答えを述べているにもかかわらず、ディストリビューション開発者がレガシーBourneシェルとは異なるものをインストールする機能の不足ではなく、/bin/sh可能な限りPOSIXに準拠したい、つまりOSのようなUnix。POSIXシェルが従来のBourneシェルよりも多くの機能を備えているという事実は、この標準コンプライアンス目標の副作用にすぎません。
また、一部のシェルは、特にbashが呼び出されたときに異なる動作をすることも事実shです。これにより、シェルから機能が削除されます。