多条件判断语句case
一、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的更多相关文章
- 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). 分析: 首先想到的是写递归函数,但是遇 ...
- 求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) 分析:这题本来很 ...
- 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) 分析:这题本来很 ...
- puppet(3) 变量、数据类型、表达式、条件判断语句-if、case、selector、unless
puppet(4) 变量.数据类型.表达式.条件判断语句-if.case.selector语句 puppet变量: 1.名称必须以$开头:赋值使用=,支持追加赋值+=: 2.每个变量都有两种引用格式: ...
- 剑指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等 ...
- 前端笔记知识点整合之JavaScript(三)关于条件判断语句、循环语句那点事
一.条件分支语句 条件分支语句,也叫作条件判断语句,就是根据某种条件执行某些语句,不执行某些语句. JS中有三种语法是可以表示条件分支的 1.1 if……else…… 条件分支的主力语法,这个主力 ...
- 前端笔记之JavaScript(三)关于条件判断语句、循环语句那点事
一.条件分支语句 条件分支语句,也叫作条件判断语句,就是根据某种条件执行某些语句,不执行某些语句. JS中有三种语法是可以表示条件分支的 1.1 if……else…… 条件分支的主力语法,这个主力语法 ...
- MySQL的简单条件判断语句
在MySQL中条件判断语句常用于数据转换,基于现有数据创建新的数据列,使用场景还是比较多. 基础样式: CASE WHEN`条件`THEN`结果` ELSE`默认结果` END 在同一条判断语句中可以 ...
- 『忘了再学』Shell流程控制 — 33、if条件判断语句(一)
目录 1.单分支if条件语句 2.双分支if条件语句 (1)示例1 (2)示例2 什么是流程控制? 普通理解:Shell编写的程序是顺序执行的,也就是说第一命令先执行,然后接着执行第二条命令,然后再下 ...
随机推荐
- Delphi 调用外部程序并等待其运行结束
转自:http://blog.csdn.net/xieyunc/article/details/4140620 如何让Delphi调用外部程序并等待其运行结束 1. uses Window ...
- python中使用多继承
python中使用多继承,会涉及到查找顺序(MRO).重复调用(钻石继承,也叫菱形继承问题)等 MRO MRO即method resolution order,用于判断子类调用的属性来自于哪个父类.在 ...
- erlang常用命令
1 erlang启动时就运行odbc erl -s odbc 2 ping 节点 net_adm:ping('rabbit@COMPUTERNAME'). 3 运行cmd命令 os:cmd(" ...
- php框架推荐
ThinkPHP, 国内开发的框架,特别容易入门,中文文档细致,表述准确. Laravel, 国外框架,非常高级的一个框架,特别是前端比较模块化,但入门难一些,速度不高. laravel在lampp ...
- ESP8266调试问题
1 串口连接电脑调试时,GPIO15必须接地,否则没响应 2发送退出透传指令“+++”时,必须取消勾选发送新行.发送别的指令时须勾选. 另外若所刷固件版本为[Vendor:www.ai-thinker ...
- jdk5下载链接
查看jdk版本 java -version JDK下载 最新版本 http://www.oracle.com/technetwork/java/javase/downloads/index.html ...
- TPARAMS和OLEVARIANT相互转换
所谓的“真3层”有时候是需要客户端上传数据集的TPARAMS到中间件的. 现在,高版本的DATASNAP的远程方法其实也是直接可以传输TPARAMS类型的变量,但是DELPHI7(七爷).六爷它们是不 ...
- JSON如何序列图片
图片采用JSON格式传输的话,需要把图片转成Base64格式. 首先把图片转成流:Image1.Picture.Graphic.SaveToStream(ss);然后编码成base64格式的:Enco ...
- Codeforces 712 D. Memory and Scores (DP+滚动数组+前缀和优化)
题目链接:http://codeforces.com/contest/712/problem/D A初始有一个分数a,B初始有一个分数b,有t轮比赛,每次比赛都可以取[-k, k]之间的数,问你最后A ...
- (图解版)SQL Server数据库备份与还原
本文介绍了SQL Server数据库备份的两种方式.一种是直接拷贝数据库中的文件mdf 和日志文件ldf,另一种是生成脚本语言. 第一种方式: 选中需要备份的数据库,将数据库从运行的数 ...