Bashのcase文 - パターンマッチングスイッチ
パターンマッチング制御フローのためのbashのcase文を学びます。基本パターン、ワイルドカード、ORパターン、引数解析やメニューの実践例をカバーします。
Control Flow
詳細な説明
Bashのcase文
case文はswitch文に似たパターンマッチングを提供します。変数を複数のパターンに対してマッチングする場合、複数のif/elifチェーンよりもきれいです。
基本構文
case "$variable" in
pattern1)
commands
;;
*)
default commands
;;
esac
サービス制御スクリプト
case "$1" in
start) echo "サービスを開始中..." ;;
stop) echo "サービスを停止中..." ;;
restart) $0 stop; sleep 2; $0 start ;;
*) echo "Usage: $0 {start|stop|restart}"; exit 1 ;;
esac
パターンマッチング機能
# ORパターン
case "$input" in
yes|y|Y) echo "確認済み" ;;
no|n|N) echo "キャンセル" ;;
esac
# ワイルドカード
case "$filename" in
*.tar.gz|*.tgz) tar -xzf "$filename" ;;
*.zip) unzip "$filename" ;;
*) echo "不明なファイルタイプ" ;;
esac
ユースケース
case文はサービスの初期化スクリプト(start/stop/restart)、コマンドライン引数の解析、拡張子に基づくファイルタイプの検出、対話型メニューシステム、値を複数のパターンに対してマッチングする必要があるすべてのシナリオに最適です。