shell笔记
- case语法结构
 
 
case语法结构
Caseesac语句与其他语言中的switch·.case 语句类似,是一种多分支选择结构。case语句匹配一个值或一个模式,如果匹配成功,执行相匹配的命令。
 case语法结构:
case expr in		#expr为表达式,关键词in不要忘pattern1)		#若expr与pattern1匹配,注意括号commands1	#则执行语句块commands1;;			#跳出case结构pattern2)		#expr与pattern2匹配commands2	#则执行语句块commands2;;			#跳出case结构......			#可以有任意多个模式匹配*)				#若expr与上面的模式都不匹配commands	#执行语句块commands;;			#跳出case结构
esac				#跳出case结构case 选择语句的几点说明:
 在使用case选择语句的时候,需要注意如下几点:
 1.表达式expr 按顺序匹配每个模式,一旦有一个模式匹配成功,则执行该模式后面的所有命令,然后退出case。
 2.如果 expr 没有找到匹配的模式,则执行默认值*)后面的命令块(类似于 if 中的else)。*)可以不出现。
 3.匹配模式pattern 中可以含有通配符和。
 4.每个命令块的最后必须有一个双分号,可以独占一行,或放在最后一个命令的后面。
#!/bin/bash
##filename:case1.sh
echo "what is your preferred scripting language?"
read -p "1)bash 2)perl 3)python 4)ruby:" langcase $lang in1)	echo "you selected bash" ;;2)	echo "you selected perl" ;;3)  echo "you selected python" ;;4)  echo "you selected ruby" ;;
esac
#!/bin/bash
##filename:case_fruit.sh
echo "which is your preferred fruit?"
read -p "Apple,Pear,Kiwi,Lemon,Orange,Banana:" pi #读取输入内容,赋值给变量pi
case $pi in		#如果输入内容pi[Aa]*|[Pp]*)	echo "You selected Apple/Pear." ;;	#是Aa/Pp输出"You selected Apple/Pear."[Kk]*|[Ll]*)	echo "You selected Kiwi/Lemon." ;;[Oo]*|[Bb]*)	echo "You selected Orange/Banana" ;;*) echo "No fruit i like." ;;						#输入内容非以上选项,则表示没有喜欢的水果
esac