shell的case选择

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:" lang
	case $lang in
			1)	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

你可能感兴趣的:(shell,linux,shell)