シェルに実際の利点や欠点がありますか?どちらもバイナリを実行でき、パイプとファイルへの出力の両方を>
サポートします。人々はなぜbash
over sh
、sh
overなどを選ぶのですksh
か?シェル以外に他のシェルが存在する必要があるのはなぜですかsh
?
答え1
sh
最新のUnixファミリーオペレーティングシステムには実行可能ファイルが必要です。さまざまな規格があります(例:POSIX)はこれが意味するものを指定しますが、「Unixファミリー」が必ずしも「認証済み」を意味するわけではないので、現実は異なります。一般的に言えば、少なくともsh
元のバージョンと互換性のある機能を実装しました。ボンシェル。だからsh
普通シンボリックリンク、「sh」は、今日接続されているすべての動作の標準として最もよく理解されています。
bash
~であるボンアイデンティティシェル、これはGNU / Linuxシステムでしばしばリンクされています(しかしsh
他の可能性もあります)。 Bashにはshのすべての機能が含まれており、shスクリプトの以前のバージョンとの互換性を提供するように設計されています。明らかに、この互換性には潜在的なあいまいな欠陥がありますが、それほど深刻ではありません。dash
ash
sh
したがって、機能的には、bashはshを拡張して必要なすべての作業を実行します。 POSIXの要件を満たすもう一つの人気のある拡張shの実装は次のとおりです。カンシェルカンパニー、ksh
。
*nix 世界でまだ使われているもう一つの一般的なコマンドシェル系統は次のとおりです。Cシェルcsh
ただし、Cシェルはshコードと互換性がなく、実装は決して接続されませんsh
。
答え2
最も一般的な違いは次のとおりです。ksh、bash、その他のシェルの違いunix.comに投稿することは、他のディストリビューションを選択するのと同じだと思います。誰もが自分の好きなものを選択します。