case 文を使用する - Linux シェルスクリプト プログラミング

PROGRAM


case 文を使用する

Linux シェルスクリプト (sh) では、変数の値に応じで処理をいくつかに分岐する case 文が利用できるようになっています。

たとえば、変数 VALUE の値が "Apple" か "Mikan" かそれ以外かといった場合、次のような書き方になります。

case "$VALUE" in

 

"Apple")

# ここに VALUE の値が "Apple" だった場合の処理を記載します。

 

;;

 

"Mikan")

# ここに VALUE の値が "Mikan" だった場合の処理を記載します。

 

;;

 

*)

# ここに VALUE の値が、上記以外だった場合の処理を記載します。

 

;;

esac

このように、"case" と "esac" でブロックを括り、その中に、値ごとの処理を記載します。各処理の末行には ";;" を記載するのを忘れないようにします。

なお、case 文の条件には "*" や "?" といったワイルドカードを使った値も指定でき、たとえば "Ehime Mikan" や "Unsyuu Mikan" のどちらの場合にも処理したい場合には、条件としては次のように記載します。

*"Mikan")

上記では "*" という任意の文字列(何文字でも可)を意味するワイルドカードで指定していますけど、もし文字数を限定したい場合には、任意の 1 文字を意味する "?" というワイルドカードを使うこともできます。

たとえば、A から始まる 5 文字の単語というような場合は、次のような条件になります。

"A"????)

 


[ もどる ]