Section Next | Prev


3.4.6 多分岐(case)

esac 文は、次の様にC言語の switch 文に似た構造をとります。 変数が指定した文字列(タグ。複数指定でき、正規表現が利用可能)に一致した場合、 その文字列に続くコマンド群を実行します。 二重のセミコロン(;;) はC言語のbreak相当で、ひとつのタグの終了を表します。

【文法】
	esac 変数名 in
	文字列1)
		コマンド群
		;;
	文字列2)
		コマンド群
		;;
	case

【例】[Get Sample]
$ cat -n ap
     1	#! /bin/sh
     2	# @ (#) File Append
     3	#
     4	case  $# in
     5	    1)
     6	        cat >> $1
     7	        ;;
     8	    2)
     9	        cat $1 >> $2
    10	        echo $1 appended to $2
    11	        ;;
    12	    *)
    13	        echo "usage : $0 [file] file"
    14	        ;;
    15	esac

$ ap data1
ONE
^D
$ ap data2
TWO
^D
$ ap data1 data
data1 appended to data
$ ap data2 data
data2 appended to data
$ cat data
ONE
TWO
この例は、シェル・スクリプト実行時に引き数として2つのファイル名を渡し そのファイルを追加します。

Section Next | Prev

Copyright 2007 ycosSystems Shell/Body346.html