linux基础(十五)----linux编程基础----linux条件控制语句----case语句
2015-12-14 12:11
399 查看
case语句
如果有很多层if else,最好使用case来代替。case语句的功能是:把保留字case右边的值和闭括号“)”左边的值比较,其语法规则如下:
case VariableName in
value1)
Instruction
;;
value2 )
Instruction
;;
esac
从上面可以看出,case语句以保留字case开头,以esac结尾。它首先检查变量VariableName 的值,如果它与value1相等则执行第一组指令集,如果它与value2 相等则执行第二组指令集,以此类推。同时,在每组指令集的最后用两个分号(;;)。
在下面的例子中,将用case语句取代本章开头的if语句,请看:
case $region in 1) echo "Hello,Gob. " ;; 2) echo "Hello,Mary." ;; 3) echo "Hello,Joan." ;; 4) echo "Hello,Mike." ;; 5) echo "Hello,Tom." ;; esac
case语句中的默认情况
在case语句中,如果用户没有给程序提供所需要的匹配值,那么程序就找不到它所要匹配的对象。如果是由程序设计者本人提供程序所必需的匹配值,这种情况有时就不会发生。我们完全可以用保留字符(*)来为此留一条后路,即提供一种默认情况,让程序在此情况下执行一些必要的操作。请看下面示例:
case $region in 1) echo "Hello,Gob. " ;; 2) echo "Hello,Mary." ;; 3) echo "Hello,Joan." ;; 4) echo "Hello,Mike." ;; 5) echo "Hello,Tom." ;; *) echo "Sorry,your region is not on my list." esac
case语句在用户界面中的应用
case语句最常和程序的用户界面一起使用。在一个程序显示菜单后,程序必须等待用户从键盘上输人一个字符。这通常由用户做出选择,输人选项,程序就用case语句把该选项与某些特定的值做比较。
假设读者想建立一个电子电话号码簿。为简单起见,在这里仅要求其具有两项功能:一是显示电话号码;二是可以添加电话号码。
首先,程序以菜单选项的形式将这两项功能显示在屏幕上。然后,由用户从键盘上输入相应的选项。
为实现这个目标,可以用case语句把用户输入的选项与已知的菜单项对比。
在下面的例子中,程序仅显示用户欲做何种选择的信息(当然,如果让程序再复杂一点,可以用其他的指令来取代这些信息),请看:
#!/bin/bash clear echo "" echo "The Telephone Book" echo "" echo "1.pisplay A Telephone Number" echo "2.Add A New Telephone Number" echo "" echo "Q Quit" echo "" echo "Enter your selection;” read selection case $selsction in "1") echo "You want to display a telephone number." ;; "2") echo "You want to add a new telephone number." ;; "q") exit 0 ;; "Q") exit 0 ;; *) echo "You made an invalid selection." esac
为了避免用户退出程序时出现问题,最好像上面的例子那样,将字母的大、小写(如q和Q)都标上。
相关文章推荐
- linux下的java开发环境
- Linux温馨提示1--安装U板块和Windwos划分
- linux怎样使用top命令查看系统状态
- Linux配置启动挂载:fstab文件详解
- Linux系统实现多网段DHCP服务器配置
- 利用virt-manager远程linux虚拟机
- Linux 用户及权限管理
- Linux下任何命令都不能用,解决方案
- Linux日志系统(Logcheck)的安装预配置
- linux线程池简单实例
- sshfs挂载远程文件到本地
- 当遇到了linux启动只能进入只读模式的时候,请试试fsck
- linux service命令
- 世道变了 – 你愿意成为微软认证Linux工程师吗?
- 转:CentOS设置程序开机自启动的方法
- vim代码粘贴缩进混乱的问题[Linux]
- Linux CCF框架简要分析和API调用
- CentOS 6.5下搭建hadoop 2.6.0集群(三):SSH无密码验证配置
- linux命令行编辑快捷键
- Linux系统文件名字体不同的颜色都代表什么