3分理解!シェルスクリプトでのcaseの使い方

case
  • このエントリーをはてなブックマークに追加
  • Pocket

シェルスクリプトでの条件分岐ではifがよく使われる。

しかし条件分岐の方法はifだけではなく、caseも使いやすい場合がある。

このページではシェルスクリプトでのcaseの使い方についてお伝えしよう。

条件分岐をさせるcase

caseとは?

caseとは条件にマッチしたケースで処理を決めていくパターンだ。

例えば、変数の値が「appleであればリンゴを表示」「orangeであればオレンジを表示」「grapeであればブドウを表示」というプログラムがあったとき、caseを使うと便利だ。

ifでももちろん表現できるが、caseの方が使いやすい。

caseはC言語のswitchに相当する。if文とくらべると複雑な条件はたてるのには向いていない。caseでできることはifでも可能なので、現にPythonなどではcaseにあたる文法は存在しない。

しかし一つの変数で多くの分岐選択肢を設定できるので、便利なことは間違いない。文法も簡素なので可読性も高い、用途に応じて使い分けよう。

caseの書式について

caseの書き方は次のようになる。

case 変数 in
マッチパターン1 ) 処理1 ;;
マッチパターン2 ) 処理2 ;;
マッチパターン3 ) 処理3 ;;
マッチパターンN ) 処理N ;;
esac

上から順に処理され、どのパターンにもマッチしなかった場合はなにも処理されない。最後に「;;」とふたつセミコロンをつけることに気をつけよう。

サンプルプログラム

vi case-ex1.sh

実行結果

caseのサンプルプログラム

パターンに変数やワイルドカード(* | []など)を指定する

パターンマッチングなのでワイルドカードなども利用可能だ。

vi case-ex2.sh

実行結果

case サンプル2

マッチパターンにアスタリスクなどを使うことも可能であり、変数も指定できるほか 「|」をつかうことで「or」の処理をさせることができる。

まとめ

このページではシェルスクリプトでのcaseの使い方についてお伝えしてきた。

可読性が高く便利なことも多いため、ifと並行して使えるようになっておこう。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*