- ベストアンサー
ifとcaseについて
Tera Term proを使ってるんですが、 shell scriptで、 ifとcaseはどのように違うんでしょうか? 教えてください。
- みんなの回答 (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
その他の回答 (2)
- mitsu-s
- ベストアンサー率25% (7/27)
何のOS,shellを使用されているかわかりませんが、 ifは選択 caseは分岐 となります。 たとえば xという変数の中が0と1しか有り得ない場合はif xという変数の中身が0~5まで有り得る場合はcase というふうに使い分けます。
お礼
どうもありがとうございました。
- punchan_jp
- ベストアンサー率55% (155/280)
sh のことですね。 if は、与えたコマンドを実行させ、それが真か偽か(成功か失敗か)で条件分岐します。 case は、与えた文字列が、選択肢のどれにマッチするかを調べ、マッチした箇所に条件分岐します。 if で、[ ] などを使って、文字列の一致を調べるじゃないかという見方もできますが、実際には、[ ] は test という外部コマンドの別名であり、そのコマンドが文字列の一致を調べて成功したり失敗したりする機能をもっているだけです。
お礼
どうもありがとうございました。
お礼
どうもありがとうございました。