-1

シェルの使用の内訳をパーセンテージで知ることが非常に役立つ状況に遭遇しました。たとえば、私は次のようなものを探しています

bash: X%, sh: Y%, csh, tcsh, zsh, ksh, dash, etc..

明らかに、複数のシェル、「使用」の定義、不確実性など、いくつかの複雑な問題があることは知っていますが、実際のデータから導き出され、いくつかの記述されたメトリックに基づいた情報に基づいた回答が必要です。ひどく間違っています。

好みの変化を示す履歴データがある場合はボーナス。

4

2 に答える 2

2

TIOBEインデックスはどうですか?

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

これには、歴史のあるスクリプト言語(Cシェルやbashを含む)の人気が含まれています。

于 2012-09-06T00:26:04.520 に答える
1

私の推測では、BASHが現在選択されているシェルであり、シェルユーザーの大部分を占めています。これはLinuxのデフォルトのシェルであり、LinuxはUnixの世界をほぼ引き継いでいます。(はい、Linuxは実際にはUnixではありませんが、非常に近いです)。

Cshは、SunOSとMac OS Xを含むBSDセットのドメインでした。ただし、バージョン10.4ではMac OS XがBashに切り替わり、SolarisがPOSIXシェルに切り替わりました(構文ではBashに似ています)。

ちょっとした歴史...

ほとんどのUnixユーザーは、デフォルトのシェルとしてCshを使用していましたが、Bourneシェルでプログラムされていました。Cshには、エイリアシングやコマンドライン編集などのBourneシェルに欠けている多くの機能があり、インタラクティブに使用すると便利でした。ただし、Cshは貧弱なプログラミングシェルでした。Cshに関するTomChristiansenの独創的な論文は、Cshでのプログラミングに関する契約を封印しました。真実は、BSDベースのシステムでさえスタートアップスクリプトなどでBourneシェルを使用していたということです。

Kornshellが出たとき、私は他の多くのユーザーと切り替えました。KornshellにはおなじみのBourneシェル構文がありましたが、Cshが持っていたパワーユーザー機能もありました。実際、Kornshellのコマンド履歴機能は、Cshのコマンド履歴よりもはるかに優れていました。Kornshellの最大の問題は、AT&Tが所有しており、オープンソースではなかったことです。ほとんどすべての商用Unixプラットフォーム(SunOSを除く)でKornshellを利用できました。ただし、オープンソースプラットフォームはKornshellを使用できませんでした。

Bashは、Kornshellの多くの機能を備えた真のOSSシェルとして1980年代後半に開発されました。ただし、BashはPOSIX標準(Kornshellの多くの機能を使用)に準拠しようとしました。

私はまだKornshellを好みます(主に習慣のため)が、より少ないシステムでそれを見つけています。私はほとんどの新しいUnixヘッドに、BASHが最も多くのリソースを持ち、最も簡単に利用できるので、BASHを学ぶように言います。

私の推奨事項は、Bash vs. Kornshell vs. Bourne Shellvs.Posixについてあまり心配しないことです。それらはすべてかなり同一です。Cshを忘れてください。Turbo Cshの公式ページは、2004年以降更新されていません。

シェルスクリプトを作成する場合は、すべてのボーンタイプのシェルに共通の機能を使用してください。orprintfの代わりに使用する(Kornshellの機能)、andの代わりにandを使用するのは、二重中括弧がすべてのシェル間で完全に互換性があるわけではないためです。配列も避けてください。Bash 4.0はそれらをサポートしていますが、以前のバージョンはサポートしていません。Kornshellは数値配列と文字列配列の両方をサポートしていますが、Bashとは異なる方法で宣言されています。それでも、シェルスクリプトの機能の約90%が残ります。echoprint[][[]]

さらに、より強力で高速なスクリプト言語であるPythonまたはPerlで書く方が本当に良いでしょう。さらに、どちらもさまざまなシェルよりもプラットフォームに依存しません。私はシェルスクリプトを書いていますが、数十行を超えて、実際のスクリプト言語に切り替えています。

于 2012-09-06T03:35:08.103 に答える