OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

ifとcaseについて

  • すぐに回答を!
  • 質問No.195366
  • 閲覧数532
  • ありがとう数6
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 16% (11/68)

Tera Term proを使ってるんですが、
shell scriptで、
ifとcaseはどのように違うんでしょうか?
教えてください。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル14

ベストアンサー率 50% (1122/2211)

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
お礼コメント
janne

お礼率 16% (11/68)

どうもありがとうございました。
投稿日時 - 2002-01-12 02:06:02
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル11

ベストアンサー率 55% (155/280)

sh のことですね。 if は、与えたコマンドを実行させ、それが真か偽か(成功か失敗か)で条件分岐します。 case は、与えた文字列が、選択肢のどれにマッチするかを調べ、マッチした箇所に条件分岐します。 if で、[ ] などを使って、文字列の一致を調べるじゃないかという見方もできますが、実際には、[ ] は test という外部コマンドの別名であり、そのコマンドが文字列の一致を調べて ...続きを読む
sh のことですね。

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

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

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

お礼率 16% (11/68)

どうもありがとうございました。
投稿日時 - 2002-01-12 02:06:45
  • 回答No.2
レベル7

ベストアンサー率 25% (7/27)

何のOS,shellを使用されているかわかりませんが、 ifは選択 caseは分岐 となります。 たとえば xという変数の中が0と1しか有り得ない場合はif xという変数の中身が0~5まで有り得る場合はcase というふうに使い分けます。 ...続きを読む
何のOS,shellを使用されているかわかりませんが、
ifは選択
caseは分岐
となります。
たとえば
xという変数の中が0と1しか有り得ない場合はif
xという変数の中身が0~5まで有り得る場合はcase
というふうに使い分けます。
お礼コメント
janne

お礼率 16% (11/68)

どうもありがとうございました。
投稿日時 - 2002-01-12 02:06:21
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ