あなたの質問の文は間違っています。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
またはdash
Gnu / Linuxディストリビューション。
これは必ずしもリンクではありませんが、Gnu / Linux以外の多くのシステムで実際の実行可能ファイルにすることができます。
興味深いことに、あなたの質問に対する最も賛成の答えを述べているにもかかわらず、ディストリビューション開発者がレガシーBourneシェルとは異なるものをインストールする機能の不足ではなく、/bin/sh
可能な限りPOSIXに準拠したい、つまりOSのようなUnix。POSIXシェルが従来のBourneシェルよりも多くの機能を備えているという事実は、この標準コンプライアンス目標の副作用にすぎません。
また、一部のシェルは、特にbash
が呼び出されたときに異なる動作をすることも事実sh
です。これにより、シェルから機能が削除されます。