多条件判断语句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编写的程序是顺序执行的,也就是说第一命令先执行,然后接着执行第二条命令,然后再下 ...
随机推荐
- AudioManager --- generateAudioSessionId
AudioManager中的generateAudioSessionId方法介绍: 1.方法声明 pubilc void generateAudioSessionId(); 2.API描述 返回一个不 ...
- Strider安装(Ubuntu)
安装: git clone https://github.com/Strider-CD/strider.git && cd strider nam install 然而还是出现一大波错 ...
- URAL-1991 The battle near the swamp 水题
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1991 水题.. //STATUS:C++_AC_15MS_333KB #include ...
- windows平台下,快速删除所有.svn文件夹
新建一个注册表文件名为:DELSVN.reg编辑其内容如下: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Cla ...
- HD2144Calculate S(n)
Problem Description Calculate S(n). S(n)=13+23 +33 +......+n3 . Input Each line will contain one int ...
- HDU 5432 Rikka with Tree (BestCoder Round #53 (div.2))
http://acm.hdu.edu.cn/showproblem.php?pid=5423 题目大意:给你一个树 判断这棵树是否是独特的 一颗树是独特的条件:不存在一颗和它本身不同但相似的树 两颗树 ...
- rome实现rss订阅与发布
1. 什么是RSS RSS也叫聚合RSS,是在线共享内容的一种简易方式(也叫聚合内容, 简易供稿,Really Simple Syndication(真正简单的聚合 )).通常在时效性比较强的内容上使 ...
- 使用JAP(基类)父类注解
-----------------基类------------------------------- /** * @className:com.jubangit.ebusiness.database. ...
- opencv直方图均衡化
#include <iostream> #include "highgui.h" #include "cv.h" #include "cx ...
- Spring aop expression
任意公共方法的执行:execution(public * *(..))任何一个名字以“set”开始的方法的执行:execution(* set*(..))AccountService接口定义的任意方法 ...