一、case语句的基本格式:

case 变量 in
模式1)
语句块1
;;
模式2)
语句块2
;;
......
;;
esac

上面的格式中,每个模式后面的两个分号“;;”是模式结束标记。系统执行模式后面的语句时,不会越过此标记。

二、利用case语句处理选项参数

[root@localhost shell]# cat use_case_deal_with_option.sh
#!/bin/bash #Use case to deal with options.
#2012.12.20 OPTION_L=1
OPTION_H=1
OPTION_A=1
OPTION_D=1
FILE_NAME="."
CMD="ls" while [ $# -gt 0 ]
do
case “$1” in
-l)
OPTION_L=0
shift
;;
-h)
OPTION_H=0
shift
;;
-a)
OPTION_A=0
shift
;;
-d)
OPTION_D=0
shift
;;
*)
FILE_NAME=$1
shift
;;
esac
done if [ $OPTION_H = "0" ] && [ $OPTION_L = "1" ]
then
OPTION_H=1
fi if [ $OPTION_H = "0" ] && [ $OPTION_L = "0" ]
then
CMD=$CMD" -hl"
fi if [ $OPTION_L = "0" ] && [ $OPTION_H = "1" ]
then
CMD=$CMD" -l"
fi if [ $OPTION_A = "0" ]
then
CMD=$CMD" -a"
fi if [ $OPTION_D = "0" ]
then
CMD=$CMD" -d"
fi $CMD $FILE_NAME
[root@localhost shell]# ./use_case_deal_with_option.sh -l /root
total 101904
-rw------- 1 root root 1020 Nov 13 00:07 anaconda-ks.cfg
drwxr-xr-x 3 root root 4096 Sep 30 2011 Blue
-rw-r--r-- 1 root root 223118 Sep 30 2011 Blue-1.8.tar.bz2
drwxr-xr-x 2 root root 4096 Dec 17 15:01 Desktop
-rw------- 1 root root 2427054 Dec 16 21:29 initrd-2.6.18-53.el5.img
-rw-r--r-- 1 root root 29086 Nov 13 00:06 install.log
-rw-r--r-- 1 root root 3325 Nov 13 00:04 install.log.syslog
-rwxr-xr-x 1 root root 88749 Dec 14 09:44 lbzip2-2.1-1.el5.rf.i386.rpm
-rw-r----- 1 root root 90951680 Dec 2 21:01 linux.iso
-rw------- 1 root root 45170 Dec 13 10:03 mbox
drwxrwxr-x 33 1000 1000 4096 Dec 14 14:45 MPlayer-1.0rc4
-rw-r--r-- 1 root root 10351350 Jan 30 2011 MPlayer-1.0rc4.tar.bz2
-rw-r--r-- 1 root root 1285 Dec 5 10:49 ping.txt
-rw-r--r-- 1 root root 128 Dec 12 17:19 root_cron
drwxr-xr-x 2 root root 4096 Dec 10 17:01 test
[root@localhost shell]# ./use_case_deal_with_option.sh -l -d /root
drwxr-x--- 23 root root 4096 Dec 20 09:22 /root

三、利用case语句处理用户输入

......
while true
do
echo -n "Please enter yes or no?[yes|no]"
read ANS
case “$ANS” in
y|Y|yes|Yes)
echo "You enter yes"
......
break
;;
n|N|no|No)
echo "You enter no"
......
break
;;
*)
echo "Please enter yes or no."
continue
;;
esac
done
......

多条件判断语句case的更多相关文章

  1. Interview----求 1+2+...+n, 不能用乘除法、for、while if、else、switch、case 等关键字以及条件判断语句 (A?B:C)

    题目描述: 求 1+2+...+n, 要求不能使用乘除法.for.while.if.else.switch.case 等关键字以及条件判断语句 (A?B:C). 分析: 首先想到的是写递归函数,但是遇 ...

  2. 求1+2+…+n,要求不能使用乘除法、for、while、if、else、s witch、case 等关键字以及条件判断语句(A?B:C)和不用循环/goto/递归输出1~100的10种写法

    来源:据说是某一年某个公司的面试题 题目:求1+2+…+n, 要求不能使用乘除法.for.while.if.else.s witch.case 等关键字以及条件判断语句(A?B:C) 分析:这题本来很 ...

  3. C语言奇思妙想:求1+2+…+n,要求不能使用乘除法、for、while、if、else、s witch、case 等关键字以及条件判断语句(A?B:C)

    来源:据说是某一年某个公司的面试题 题目:求1+2+…+n, 要求不能使用乘除法.for.while.if.else.s witch.case 等关键字以及条件判断语句(A?B:C) 分析:这题本来很 ...

  4. puppet(3) 变量、数据类型、表达式、条件判断语句-if、case、selector、unless

    puppet(4) 变量.数据类型.表达式.条件判断语句-if.case.selector语句 puppet变量: 1.名称必须以$开头:赋值使用=,支持追加赋值+=: 2.每个变量都有两种引用格式: ...

  5. 剑指offer47:位运算+递归。求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

    1 题目描述 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). 2 思路和方法 (1)递归,不能使用if等 ...

  6. 前端笔记知识点整合之JavaScript(三)关于条件判断语句、循环语句那点事

      一.条件分支语句 条件分支语句,也叫作条件判断语句,就是根据某种条件执行某些语句,不执行某些语句. JS中有三种语法是可以表示条件分支的 1.1 if……else…… 条件分支的主力语法,这个主力 ...

  7. 前端笔记之JavaScript(三)关于条件判断语句、循环语句那点事

    一.条件分支语句 条件分支语句,也叫作条件判断语句,就是根据某种条件执行某些语句,不执行某些语句. JS中有三种语法是可以表示条件分支的 1.1 if……else…… 条件分支的主力语法,这个主力语法 ...

  8. MySQL的简单条件判断语句

    在MySQL中条件判断语句常用于数据转换,基于现有数据创建新的数据列,使用场景还是比较多. 基础样式: CASE WHEN`条件`THEN`结果` ELSE`默认结果` END 在同一条判断语句中可以 ...

  9. 『忘了再学』Shell流程控制 — 33、if条件判断语句(一)

    目录 1.单分支if条件语句 2.双分支if条件语句 (1)示例1 (2)示例2 什么是流程控制? 普通理解:Shell编写的程序是顺序执行的,也就是说第一命令先执行,然后接着执行第二条命令,然后再下 ...

随机推荐

  1. ZOJ-3201 Tree of Tree 树形DP

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3201 题意:给一颗树,每个节点有一个权值,求节点数为n的最大权子 ...

  2. SharePoint咨询师之路:设计之前的那些事一:容量

    提示:本系列只是一个学习笔记系列,大部分内容都可以从微软官方网站找到,本人只是按照自己的学习路径来学习和呈现这些知识. 咨询师更多的时候是解决方案提供者,那么他们如何能够提供有效的SharePoint ...

  3. 第三百二十三天 how can I 坚持

    人在最绝望的时候会干啥,<进击的巨人>. 可以绝望,但一定要相信还有希望. 今天去看了<美人鱼>,确实挺好吧. 把愤怒归结于无能,其实是大错特错,愤怒是人的情绪的发泄,是人就有 ...

  4. MYSQL数据库性能调优之七:其他(读写分离、分表等)

    一.分表 水平划分 垂直划分 二.读写分离 三.选择合理的数据类型 特别是主键 四.文件.图片等大文件使用文件系统存储 五.数据库参数配置 注意:max_connections最大连接数一般设置在10 ...

  5. 适应所有浏览器的cookie

    //设置cookie的方法 weiyingfunction SetCookie(a, b) {        var d = new Date();    var v = arguments;    ...

  6. quartz中关键类

    job job是一个接口,你对某一类job的定义,可以通过实现该接口来实现.例如为销售报告定义一个SalesReportJob,包含变量name. job可以使用的几个注解 @DisallowConc ...

  7. 查询processlist具体信息

    SELECT * FROM information_schema.PROCESSLIST WHERE HOST LIKE '%172.16.10.22%' AND COMMAND <> ' ...

  8. jgroups 常见概念

    组播(Multicast)传输:在发送者和每一接收者之间实现点对多点网络连接. 单播(Unicast)传输:在发送者和每一接收者之间实现点对点网络连接. 广播(Broadcast)传输:是指在IP子网 ...

  9. mongodb高级操作及在Java企业级开发中的应用

    Java连接mongoDB Java连接MongoDB需要驱动包,个人所用包为mongo-2.10.0.jar.可以在网上下载最新版本. package org.dennisit.mongodb.st ...

  10. WPF让人哭笑不得的资源

    前几天遇到了一个让我哭笑不得的bug,我写的Wpf程序在Win7里可以运行,到XP.WindowsServer里运行点击某个控件之后闪退,不报任何错,在后台代码里trycatch也捕捉不到任何异常.很 ...