こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

シェルについて

cshやbash、zsh、tcshなど色々ありますがどう違うのでしょうか。
これまであまり考えずにSoalrisやLinuxにログインして普通に作業してきましたが、ただtabやバックスペースが使用できないというだけでzshやtcshにして使用してきました。
ただこれだけ色々シェルがあるとしたら使用方法がいろいろ違うのではないかと思っております。
シェルスクリプトを作成する時の文法が違うとかでしょうか。

投稿日時 - 2009-11-21 19:47:04

QNo.5465300

困ってます

質問者が選んだベストアンサー

文法は sh 系 (sh, ksh, bash, etc.) と csh 系 (csh, tcsh, etc.) では
大きく違うでしょうが、同じ系統 (例えば sh と bash) ではそれほど違いません。

ただ、bash は sh に比べると補完機能も含めていくつかの拡張機能があります。
なので、sh で書かれたプログラムは bash 上でも動作しますが、
bash で書かれたプログラムは sh 上では動作しないこともあります。

> ただこれだけ色々シェルがあるとしたら使用方法がいろいろ違うのではないかと思っております。

sh と csh について言えばルーツが違う程度と考えてよいと思います。

特徴という意味では、csh は C 言語に似せてあるため入りやすいのですが、パフォーマンス的には sh に劣るため、スクリプト(OS 起動時に読み込まれる RC スクリプトも)のほとんどが sh (Linux では bash) で書かれており、それゆえ csh はログインシェル以外ではほとんど使われないように思います。

加えて、Linux の標準が bash であり、sh にはないタブ補完や↓↑キーや Ctrl+R による履歴の検索ができるため、ログインシェルとして十分使い得るものであるゆえ、csh 系はあまり使われなくなったように思います。

また、多機能な zsh は機能が少ない sh と比べると極めて遅いです。
(ログインシェルなら問題ないですが、スクリプトだとパフォーマンスの差がはっきりします)

投稿日時 - 2009-11-24 10:11:57

ANo.3

このQ&Aは役に立ちましたか?

7人が「このQ&Aが役に立った」と投票しています

回答(4)

最近はあまり見掛けませんが・・・システム管理用のシェル・スクリプトはcshではなく「sh」で記述しなければいけない! という記載がありました。

あとは、他の人が回答しているように個人の趣味の問題では? と思います。

投稿日時 - 2009-11-26 11:47:26

ANo.2

bashとcshはスクリプトの書き方等は全然違いますよ。
cshとtcshはほとんど同じです。少しtcshの方が使える機能が多いですが・・・
sh,bash,zshとかは似ていますが微妙に違います。

ifとかforとかの制御構文は決定的ですし、単純なところでは変数の使い方も違います。

他のshとかを読めれば他のシェルも読めるかどうかという質問は微妙ですが、ほぼイエスでしょう。
shを理解できる技術力があればbashやzshはもちろん、tcshや大抵のものは読めます。でも書くことは無理です。
各シェル固有の機能は結構ありますが、調べれば良いので読むことはできると思います。

投稿日時 - 2009-11-22 00:35:19

ANo.1

シェルによってシェルスクリプトの文法は違います。
シェルの選択は個人の好みです。

投稿日時 - 2009-11-21 20:18:05

補足

返信ありがとうございます。
そんなに大幅には違わないと思っていますがどうなんでしょうか。
bashやshなどのスクリプトの書き方がわかってれば他のシェルで書かれたスクリプトも読めるのでしょうか。

投稿日時 - 2009-11-21 20:26:45

あなたにオススメの質問