不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2013-10-04 21:59  分类:Linux基础  编辑

case的语法结构:

case 待测项 in
	样式串1] 
		命令区域1
		;;
	(样式串2)
		命令区域2
		;;
	样式串3)
		命令区域3
		;;
	*)
		命令区域
		;;
esac
  • 命令区域,可以是单一指令或多行指令,但最后一个指令要以 ;; 结束。
  • 样式串行可用字符串和通配符组成,默认会区别大小写。
  • 如果样式串行有好几个字符串要对比,要使用 | 隔开。字符 | 有 “或”的意思,意即:只要符合其中之一,就算比较成功。
  • 样式串行可写成‘(样式串行)’,或省略左边的括号,写成 '样式串行)'。一般,以后面这个写法,较受欢迎。
  • 样式 *) 通常放在case最有一个区域,用来捕捉不符合制定样式的其他所有情况。
  • 最后用esac结束case语法。esac是case的反写。

举例:

#!/bin/bash

read yname
case $yname in
	Jack | John | Joe)
		echo 'Well...'
		echo "Long time no see."
		echo "How do you do ?"
		;;
	(Mary | Mary) echo 'Nice to meet you.';;
	C*) echo 'Long time to see.';;
	*) echo 'Hi!';;
esac