シェルスクリプトでは、条件分岐を行うためにif文がよく使用されますが、複数の条件を扱う場合や選択肢が多い場合にはcase文が便利です。
ここでは、case文の基本的な使い方とサンプルスクリプトを紹介します。
目次
case文の基本構文
シェルスクリプトのcase文は、特定の変数や値に基づいて複数の条件に分岐させるための構文です。case文の基本的な構文は以下の通りです。
case 値 in
パターン1)
コマンド1
;;
パターン2)
コマンド2
;;
*)
デフォルトコマンド
;;
esac
- 値:評価対象となる変数や値。
- パターン:評価対象の値と照らし合わせるパターン。ワイルドカード(* や ?)を使用することもできます。
- コマンド:パターンが一致した場合に実行されるコマンド。
- ;;:各パターンの終了を示します。
- *:デフォルトのパターン。どのパターンにも一致しなかった場合に実行されます。
- esac:case 文の終了を示します。
caseを用いたサンプルスクリプト
以下に、case 文を用いたシンプルなシェルスクリプトの例を示します。
echo "あなたの好きな曜日を入力してください (例: 月曜日, 火曜日, 水曜日):"
read 曜日
case $曜日 in
月曜日)
echo "今日は仕事始めです。"
;;
火曜日)
echo "今日は火曜日です。"
;;
水曜日)
echo "今日は水曜日です。"
;;
木曜日)
echo "今日は木曜日です。"
;;
金曜日)
echo "今日は金曜日です。週末が近いです!"
;;
土曜日|日曜日)
echo "今日は週末です。リラックスしてください!"
;;
*)
echo "入力された曜日は無効です。"
;;
esac
まとめ
case文は、複数の条件に基づく分岐を簡潔に記述できる強力なツールです。
case文を使用することで、コードの可読性が向上し、条件ごとの処理を整理しやすくなります。シェルスクリプトの条件分岐を効率的に行うために、ぜひ case文を活用してみてください。
また、他に条件分岐を行う方法として、以下にif文を使う方法もまとめていますので、必要に応じ参考にしてみてください。