case 选择语句是 shell 编程中一种多分支选择结构,类似于其他语言中的 switch·.case 语句。case 选择语句匹配一个值或一个模式,如果匹配成功,执行相匹配的命令。
case 语法结构如下:
case expr in
pattern1)
commands1
;;
pattern2)
commands2
;;
......
*)
commands
;;
esac
在使用 case 选择语句的时候,需要注意如下几点:
以下是一些使用 case 选择语句的实验示例:
实验 1:根据用户输入的数字,显示相应的脚本语言
#!/bin/bash
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
运行该脚本,输入以下内容:
1
将输出以下结果:
you selected bash
实验 2:根据用户输入的水果,显示相应的提示
#!/bin/bash
echo "which is your preferred fruit?"
read -p "Apple,Pear,Kiwi,Lemon,Orange,Banana:" pi #读取输入内容,赋值给变量pi
case $pi in
[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
运行该脚本,输入以下内容:
Apple
将输出以下结果:
You selected Apple/Pear.
实验3:根据用户输入的天气状况,显示相应的提示
#!/bin/bash
echo "what is the weather today?"
read -p "1)Sunny 2)Rainy 3)Snowy 4)Cloudy:" weather
case $weather in
1) echo "It's a sunny day today. Have a nice day!" ;;
2) echo "It's a rainy day today. Bring an umbrella." ;;
3) echo "It's a snowy day today. Be careful not to slip." ;;
4) echo "It's a cloudy day today. The sun is hiding." ;;
esac
运行该脚本,输入以下内容:
1
将输出以下结果:
It's a sunny day today. Have a nice day!
case 选择语句是 shell 编程中一种强大的多分支选择结构,可以用于根据不同的条件执行不同的操作。在实际使用中,可以根据需要灵活地使用 case 选择语句。