たいていどのOSも「ls -l /bin/sh」は「/bin/sh -> bash」になってる

mac OSだと「ls -l /bin/sh」すると「/bin/sh」が返ってきて稀にmac OSにはshが入ってると勘違いする人も居るんだけど「/bin/sh --version」するとGNU bashが返ってくる

なんで/bin/shと/bin/bashがあるの?と思うかも知れないけど/bin/shは「bash --posix」というPOSIX互換モードを取る。/bin/bashはPOSIX互換モードじゃない

ちなみにDebian系Linuxディストーションで「ls -l /bin/sh」すると「/bin/sh -> dash」が返ってくる。コイツはBashじゃなくてDashなので注意だ

DashはPOSIX互換モードを備えつつBashよりも機能が抑えられていてコンパクトかつ高速という特徴がある

@taskumalpha 都合と歴史ですね

BashはPOSIX互換モードを持つのでshがプリインストールされている必要がなくなったんです

しかしBash登場以降、若いユーザはshとBashは同じものと捉えてしまったという技術的敗北の歴史があります

シェルスクリプトは元々遅いですけど、shで済むはずの処理がBashの全機能を引くと更に遅くなるんですよw

そこでDebian系は「Bash遅いしDashにしようぜ」ってことになりました「まさか/bin/sh引いてるのにBash固有コマンドを書いちゃうヤツなんて居ないよね?w」と

もちろんシェルスクリプトの互換性はガタガタになり、shとBashは違うんだよということを多くの若いユーザは強制的に学ばされることとなったのですw

@keizou あ〜もう、そこら辺ウィキペディアに書いて欲しい。

ログインして会話に参加
グルドン

Mastodon は、オープンなウェブプロトコルを採用した、自由でオープンソースなソーシャルネットワークです。電子メールのような分散型の仕組みを採っています。