web-dev-qa-db-ja.com

どのシェルを使用する必要がありますか-tcsh対bash?

tcshを長い間使用しています。しかし、何かを検索しているときはいつも、指定されたメソッドがbash固有であることがよくあります。シェルスクリプトの構文でさえ、2つでは異なります。

インターネットでの検索と学習の経験から、bashが最も一般的に使用されているシェルのようです。このサイトでbashとタグ付けされた質問の数でさえ、tcshとタグ付けされた質問の数よりもはるかに多い(現在の5倍)。

だから、私はbashに切り替えるべきかどうか疑問に思っています。どう思いますか?

なぜtcshにこだわる必要があるのですか_ ORなぜbashに移動する必要があるのですか?

30
Lazer

Bashを学習した後、tcshは少し後退していることがわかりました。たとえば、bashで簡単に実行できることは、tcshで実行するのが難しいことです。 tcshに関する私の質問 。インターネットのサポートとドキュメントは、bashの場合ははるかに優れており、tcshの場合は非常に制限されています。 bashに関するO'Reillyの本はたくさんありますが、tcshに似たものは見つかりませんでした。

23
Andrew Stern

実際には、zshに移動する必要があります。これは基本的に下位互換性があり、bashのすべてのユーティリティを備えており、 awesomeness を大きくサポートしています。 もあります(私はそれを読むことに慣れていません)。

私は onezshbashよりも使用しない理由を認めますが、複数の新規インストールで常に作業しているのでない限り、実際には適用されません。特に、最も重要な differences について知っている場合。ただし、これはvimviの違いに非常に似ています。世間知らずになりたくはありませんが、実際には大したことではありません。筋金入りのvimユーザーでさえemacsの周りに自分の道を見つけることができ、逆もまた同様です。

25
gvkv

POSIX準拠のシェルに切り替える必要があります http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html 、bash、ksh、dashのように、zshではなく、確かにtcsh。 cshがスクリプティングの不適切な選択であると宣言されてから久しぶりです http://www.faqs.org/faqs/unix-faq/Shell/csh-whynot/ 、tcshはそうではありませんその地域ではそれほど異なります。

スクリプトを作成するとき、移植性のないもので再びロックされたくない場合は、POSIXのみの構成を使用してください(つまり、バシズムなどを避けます)。

19
jlliagre

取りつかれた互換性はポイントを欠いていると思います。あなたが#!/bin/sh先頭に。sh拡張子を使用しますが、bash以外はテストしないでください。互換性のあるスクリプトは保証されていません! #!/bin/bashおよび。bashユーザーが実際の要件を実際に把握できるようにします。

zshtcsh、またはbashより良い何かを知っていて、そのための優れたリファレンスマニュアルがある場合遠慮しないでください。一部のスクリプトを実行できるようにPerlまたはpythonをインストールすることを期待しているように、あいまいなシェルのインストールも処理できます。 :D

7
Kevin Cantu

どのシェル? 「使いやすさ」と「手間」の比率が最も高いものを選びます...

「Maserati」シェルの十分な一般的な例と説明が見つからない場合、追加のパフォーマンスがボーナスよりも問題になる可能性があります...

この記事/サイトは興味深いものでした。読む価値があるかもしれません:
NIXシェルの違いとシェルの変更方法

6
Peter.O

zshは、おそらくbashよりもtcshにいくつかの類似点があります。

参照: http://zsh.sourceforge.net/FAQ/zshfaq02.html#l1

人々はしばしばzshがbashができないことをすることができると主張します、しかし私はそれが事実であるとは知りませんでした。私が持っていることは、zshの方が簡単で、組み込みまたはデフォルトでオンになっているのに対し、bashではアドオンスクリプトなので、オン、またはより困難です。

(免責事項:私は時々zshへの切り替えを検討したbashユーザーです)

0
KellyClowers