Tera Term proを使ってるんですが、
shell scriptで、
ifとcaseはどのように違うんでしょうか?
教えてください。

A 回答 (3件)

sh系のコマンドだと思って回答します。



if は、それに続くコマンドを実行し、結果が0かどうかで分岐します。
case は、文字列のパターンマッチをします。

ん、No.1 の回答と変わらないですね (^^;

例えば、あるファイルに文字列 XXX があれば、EXIST と表示するスクリプト。

if grep XXX filename
then
 echo XXX
fi

一文字入力して、Y/N で処理を分けるようなスクリプト。小文字でもOKにしてます。

read x
case $x in
 y|Y) echo Yes;;
 n|N) echo No;;
 *) echo Else;;
esac
    • good
    • 0
この回答へのお礼

どうもありがとうございました。

お礼日時:2002/01/12 02:06

何のOS,shellを使用されているかわかりませんが、


ifは選択
caseは分岐
となります。
たとえば
xという変数の中が0と1しか有り得ない場合はif
xという変数の中身が0~5まで有り得る場合はcase
というふうに使い分けます。
    • good
    • 0
この回答へのお礼

どうもありがとうございました。

お礼日時:2002/01/12 02:06

sh のことですね。



if は、与えたコマンドを実行させ、それが真か偽か(成功か失敗か)で条件分岐します。

case は、与えた文字列が、選択肢のどれにマッチするかを調べ、マッチした箇所に条件分岐します。

if で、[ ] などを使って、文字列の一致を調べるじゃないかという見方もできますが、実際には、[ ] は test という外部コマンドの別名であり、そのコマンドが文字列の一致を調べて成功したり失敗したりする機能をもっているだけです。
    • good
    • 0
この回答へのお礼

どうもありがとうございました。

お礼日時:2002/01/12 02:06

このQ&Aに関連する最新のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ