case

http://c.biancheng.net/cpp/view/7006.html

case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构。

case 语句匹配一个值或一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下:

case 值 in
模式1)
    command1
    command2
    command3
    ;;
模式2)
    command1
    command2
    command3
    ;;
*)
    command1
    command2
    command3
    ;;
esac

case工作方式如上所示。取值后面必须为关键字 in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。;; 与其他语言中的 break 类似,意思是跳到整个 case 语句的最后。

取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。

下面的脚本提示输入1到4,与每一种模式进行匹配:


  1. echo 'Input a number between 1 to 4'
  2. echo 'Your number is:\c'
  3. read aNum
  4. case $aNum in
  5. 1) echo 'You select 1'
  6. ;;
  7. 2) echo 'You select 2'
  8. ;;
  9. 3) echo 'You select 3'
  10. ;;
  11. 4) echo 'You select 4'
  12. ;;
  13. *) echo 'You do not select a number between 1 to 4'
  14. ;;
  15. esac

输入不同的内容,会有不同的结果,例如:

Input a number between 1 to 4
Your number is:3
You select 3

再举一个例子:


  1. #!/bin/bash
  2. option="${1}"
  3. case ${option} in
  4. -f) FILE="${2}"
  5. echo "File name is $FILE"
  6. ;;
  7. -d) DIR="${2}"
  8. echo "Dir name is $DIR"
  9. ;;
  10. *)
  11. echo "`basename ${0}`:usage: [-f file] | [-d directory]"
  12. exit 1 # Command to come out of the program with status 1
  13. ;;
  14. esac

运行结果:

$./test.sh
test.sh: usage: [ -f filename ] | [ -d directory ]
$ ./test.sh -f index.htm
$ vi test.sh
$ ./test.sh -f index.htm
File name is index.htm
$ ./test.sh -d unix
Dir name is unix
$
时间: 2024-12-24 20:54:38

case的相关文章

UML Use Case Diagrams: Tips and FAQ

UML Use Case Diagrams: Tips and FAQ 来源:http://www.andrew.cmu.edu/course/90-754/umlucdfaq.html Contents: What is a UML Use Case Diagram (UCD), and when should I use it? How do you know who the actors are in a UCD? How do you know what to put in the "S

超实用四步走帮你搞定智能硬件异常CASE

  第一次做智能硬件,少不了各种踩坑,但在这过程中也逐渐摸索出一种比较直观的智能硬件异常case走查方法,通过这种方法我梳理出的异常case比工程师上报给我的还要全面,亲测可用,大家不妨试试. 相比于软件,智能硬件产品由于涉及硬件和软件两个端的状态,其异常case要更加错综复杂.由于硬件产品的迭代更新较慢,一旦带着问题上线要比软件麻烦的多,轻则导致操作上的困惑,重则导致产品无法使用,因此设计师必须在产品设计过程中将所有情况考虑周全. 梳理异常case的通常方法是按照产品使用场景和操作顺序一一枚举

【SQL 学习】case 表达式

SQL> --使用case 表达式 ---简单CASE表达式 SQL> select product_id,product_type_id ,   2  case product_type_id   3  when 1 then 'book'   4  when 2 then 'video'   5  when 3 then 'dvd'   6  when 4 then 'cd'   7  else 'magazine'   8  end   9  from products; PRODUCT

constraint-在check中使用case函数,为什么end后面要加 =1

问题描述 在check中使用case函数,为什么end后面要加 =1 alter table Salaryadd CONSTRAINT check__salary CHECK( CASE WHEN sex = '2' THEN CASE WHEN salary > 1000 THEN 1 ELSE 0 END ELSE 1 END =1 )_**_** 为什么上面语句最后结束的时候(end 后面)要加上 "=1",否则会提示下面的错误信息:An expression of non

sql 中 case when 语法使用方法

没有,用case when 来代替就行了. 例如,下面的语句显示中文年月 复制代码 代码如下: select getdate() as 日期,case month(getdate()) when 11 then '十一' when 12 then '十二' else substring('一二三四五六七八九十', month(getdate()),1) end+'月' as 月份 CASE 可能是 SQL 中被误用最多的关键字之一.虽然你可能以前用过这个关键字来创建字段,但是它还具有更多用法.例

探讨SQL Server中Case 的不同用法

server CASE 可能是 SQL 中被误用最多的关键字之一.虽然你可能以前用过这个关键字来创建字段,但是它还具有更多用法.例如,你可以在 WHERE 子句中使用 CASE. 首先让我们看一下 CASE 的语法.在一般的 SELECT 中,其语法如下: SELECT <myColumnSpec> = CASE WHEN <A> THEN <somethingA> WHEN <B> THEN <somethingB> ELSE <some

Firebird的Case表达式功能

    说来惭愧,自从FB1.5出来以后,一直没有顾上很深入的挖掘它的新功能,只是当它是IB的一个延续来对待--只要能平滑移植,就算OK. 说来惭愧,自从FB1.5出来以后,一直没有顾上很深入的挖掘它的新功能,只是当它是IB的一个延续来对待--只要能平滑移植,就算OK.    前两天才发现,Firebird 1.5.2里,已经支持了CASE 表达式.在我看来,这是关系型数据库中一个相当重要的功能,因为利用CASE,可以生成强大的数据透视表--这个东西好像在Excel等电子表格里有个专门的名字,忘

利用Case敘述做SQL的動態排列

SQL Server 在讀取資料時是採用隨機的方式, 所以使用者會用 Order 子句來做資料排列, 在這篇文章當中咱叨要來進一步介紹按怎使用 Case 來做動態的排列 Order By 子句 咱先來看麥一般使用 Select 的結果, 在這篇文章的例咱會使用 SQL Server 的北風資料庫, 請打開 Query Analyzer, 執行 Use Northwind Go Select CompanyName, ContactName, ContactTitle From Customers

oracle里面如何写case语句

oracle|语句 出处:  CSDN - 技术社区 - Oracle 基础和管理问题 如下:SELECT LogID,UserID,LogTime,Url,Description,(case OperateType when OperateType = 0 then '新增'  when OperateType=1 then '修改' else '删除' end case)  FROM LOG ???? 1. caseSELECT LogID,UserID,LogTime,Url,Descri

bad case在SEO中是什么意思?

最近一段时间,www.seovip.cn不仅因为Robin在短短的18天之内将目标优化关键词"seo培训"进入百度搜索结果第一页,更因为seovip.cn饱受着百度算法的各种洗礼.目标关键词的大起大落,被百度K掉又回来,回来有K掉,加之Robin的各种营销策略,因此www.seovip.cn已被seo界传为佳话.这不,seovip.cn目前又因为带www的彻底没有排名,而不带www的排名又回来了,如下图:   从去年6-28开始,就出现这种状况了,这时大家又是仁者见仁智者见智,有的说&