一、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. Python的16个“坑”

    1. 不要使用可变对象作为函数默认值 代码如下: In [1]: def append_to_list(value, def_list=[]): ...: def_list.append(value) ...

  2. DataGrid参数

    1.3.2 data-options="singleSelect:true,collapsible:false,url:'/datagrid/getbasic'"    参数 类型 ...

  3. MYSQL数据库性能调优之四:解决慢查询--索引

    为什么索引能够提高查询速度?没有索引 检索数据的方式是从头到尾一条一条挨着匹配,这是慢的根本原因:索引类型BTREE:二叉树类型,原理图如下:对表创建一个二叉树,记录中间数据的物理磁盘地址,二叉树检索 ...

  4. 代码SketchPaintCode绘制

    作者:codeGlider 在我的上一篇文章中 swift10分钟实现炫酷的导航控制器跳转动画,有一个swift logo的形状 上一篇文章的动画 我说的就是中间用来做遮罩的形状. 它不是图片是用一段 ...

  5. 未能加载文件或程序集“Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342”或它的某一个依赖项。 解决方法

    webconfig文件对于oracle的映射错误.需要在以下位置修改 <runtime> <legacyCorruptedStateExceptionsPolicy enabled= ...

  6. inputs

    inputs.bind({ keyup:function(){$(this).val($(this).val().replace(/\D/g,''));}, focus:function(){if($ ...

  7. JDBC 与 ODBC 区别

    一. 二.

  8. 第三章TP-Link 703N OpenWrt设置网络

    默认情况下不开启wifi,另外需要连接到网络来安装软件,所以需要修正配置文件. 可以用vi修改相关配置(不会用vim的同学悲剧了). 首先修改/etc/config/wireless文件,注释掉 # ...

  9. 快速界面:QML。

    PyQt, QML,Qt Quick. QML: QML可以在脚本里创建图形对象,并且支持各种图形特效,以及状态机等,同时又能跟Qt写的C++代码进行方便的交互,使用起来非常方便. 功能性不能,此篇博 ...

  10. javascript数字转汉字中文数字

    /* 工具包 */ var Utils={ /* 单位 */ units:'个十百千万@#%亿^&~', /* 字符 */ chars:'零一二三四五六七八九', /* 数字转中文 @numb ...