`

Linux Shell编程case语句

阅读更多

 case语句适用于需要进行多重分支的应用情况。

        case分支语句的格式如下:

            case $变量名 in

                模式1

            命令序列1

            ;;

                模式2

            命令序列2

         ;; 

                *)

            默认执行的命令序列     ;; 

            esac 

        case语句结构特点如下:

        case行尾必须为单词“in”,每一个模式必须以右括号“)”结束。

        双分号“;;”表示命令序列结束。

        匹配模式中可是使用方括号表示一个连续的范围,如[0-9];使用竖杠符号“|”表示或。

        最后的“*)”表示默认模式,当使用前面的各种模式均无法匹配该变量时,将执行“*)”后

    的命令序列。

 

        case语句实例:由用户从键盘输入一个字符,并判断该字符是否为字母、数字或者其他字符,

    并输出相应的提示信息。

#!/bin/bash
read -p "press some key ,then press return :" KEY
case $KEY in
[a-z]|[A-Z])
echo "It's a letter."
;;
[0-9]) 
echo "It's a digit."
;;
*)
echo "It's function keys、Spacebar or other ksys."
esac

 

######################################################

 

case word in [ pattern [ | pattern ] ... ) list ;; ] ... esac
 case/esac的标准用法大致如下: 
 case $arg in 
     pattern | sample) # arg in pattern or sample 
     ;; 
     pattern1) # arg in pattern1 
     ;; 
     *) #default 
     ;; 
 esac 
 arg是您所引入的参数,如果arg内容符合pattern项目的话,那麽便会执行pattern以下的程式码,而该段程式码则以两个分号";;"做结尾。 

 可以注意到"case"及"esac"是对称的,如果记不起来的话,把"case"颠倒过来即可。 



 --------------------------------------------------------------------------------

 例一 : paranoia
 #!/bin/sh 
 case $1 in 
         start | begin) 
           echo "start something" 
         ;; 
         stop | end) 
           echo "stop something" 
         ;; 
         *) 
           echo "Ignorant" 
         ;; 
 esac 

 执行
 [foxman@foxman bash]# chmod 755 paranoia 
 [foxman@foxman bash]# ./paranoia 
 Ignorant 
 [foxman@foxman bash]# ./paranoia start 
 start something 
 [foxman@foxman bash]# ./paranoia begin 
 start something 
 [foxman@foxman bash]# ./paranoia stop 
 stop something 
 [foxman@foxman bash]# ./paranoia end 
 stop something 

 --------------------------------------------------------------------------------

 例二 : inetpanel
 许多的daemon都会附上一个管理用的Shell Script,像BIND就附上ndc,Apache就附上apachectl。这些管理程式都是用shell script来写的,以下示一个管理inetd的shell script。 
 #!/bin/sh 

 case $1 in 
     start | begin | commence) 
        /usr/sbin/inetd 
     ;; 
     stop | end | destroy) 
        killall inetd 
     ;; 
     restart | again) 
        killall -HUP inetd 
     ;; 
     *) 
        echo "usage: inetpanel [start | begin | commence | stop | end | destory | restart | again]" 
     ;; 
 esac 



 --------------------------------------------------------------------------------

 例三 : 判断系统
 有时候,您所写的Script可能会跨越好几种平台,如Linux、FreeBSD、Solaris等等,而各平台之间,多多少少都有不同之处,有时候需要判断目前正在那一种平台上执行。此时,我们可以利用uname来找出系统资讯。 
 #!/bin/sh 

 SYSTEM=`uname -s` 

 case $SYSTEM in 
     Linux) 
         echo "My system is Linux" 
         echo "Do Linux stuff here..." 
     ;; 
     FreeBSD) 
         echo "My system is FreeBSD" 
         echo "Do FreeBSD stuff here..." 
     ;; 
     *) 
         echo "Unknown system : $SYSTEM" 
         echo "I don't what to do..." 
     ;; 
 esac 

分享到:
评论

相关推荐

    Linux下Shell从入门到精通完整版视频.zip

    8.Shell编程之Case语句及Select综合应用_0.mp4 9.Shell编程之函数及案例分析.mp4 10.Linux下深入编程之函数及数组编程.mp4 11.Shell编程之SED及GREP综合讲解.mp4 12.Shell编程四剑客及案例详解.mp4 13.Linux下自动化...

    Linux运维-3.Shell编程-12 shell编程-142case语句.avi

    Linux运维-3.Shell编程-12 shell编程-142case语句.avi

    linux-Shell编程视频教程

    11.1 Shell编程-正则表达式.mp4 11.2.1 Shell编程-字符截取命令-cut命令....11.5.2 Shell编程-流程控制-case语句.mp4 11.5.3 Shell编程-流程控制-for循环.mp4 11.5.4 Shell编程-流程控制-while循环与until循环.mp4

    新版Linux Shell编程实训(全)20170518.docx

    7.1.5 case多选语句 135 7.1.6 跳出循环体 137 任务7.2 Shell案例:重复执行命令和简单计算器 139 任务7.3 Shell案例:使用三种循环结构打印九九乘法表 141 练习(前两题每题30分,第三题40分,共计100分) 144 项目...

    LINUX与UNIX SHELL编程指南(很全)

    第四部分 基础shell编程 第16章 shell脚本介绍 151 16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 ...

    LinuxShell编程

    Linux Shell编程基础知识 目 录1、 Shell简介1.1. 什么是shell1.2. shell分类2、 Shell语法2.1. 定义变量2.2. 变量类型2.2.1. 字符集变量2.2.2. 数字常量定义2.2.3. 数组2.2.4. 系统变量2.3. 运算符与表达式2.3.1. ...

    linux shell流程控制语句实例讲解(if、for、while、case语句实例)

    fi如果对于:条件测试语句不是很清楚,可以参考:linux shell 逻辑运算符、逻辑表达式详解shell命令,可以按照分号分割,也可以按照换行符分割。如果想一行写入多个命令,可以通过“’;”分割。如: 代码如下:...

    linux shell程序设计实验1

    手工代码实现的入门shell程序设计实验,分别使用case和if语句实现。

    linux shell 编程教程

    linux shell编程 教程大全 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 ...

    Linux与unix shell编程指南

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell ...

    LINUX/UNIX Shell编程大作业

     你需要分别以硬拷贝(书面形式)和电子文档形式(副本)提交你的shell编程大作业。  你必须提交一份硬拷贝(有一个写上名字的装订好的封面)和一份含下面四个文件的电子拷贝(三份SHELL脚本和一份文本文件)。  ...

    跟老男孩学Linux运维:Shell编程实战

    《跟老男孩学Linux运维:Shell编程实战》第三部分为第9章~第13章,着重讲解case条件语句、while循环和until型循环、for循环和select循环、条件与循环控制及程序返回值、Shell数组等知识。《跟老男孩学Linux运维:...

    Shell编程(2)之Shell编程进阶

    完成简单的Shell编程,对其中参数所包含的内容和用法进一步了解;Shell编程中if语句的使用;Shell编程中for语句的使用;Shell编程中while语句的使用;Shell编程中case语句的使用

    跟老男孩学Linux运维:Shell编程实战 part3

    本书可分为五大部分:第一部分为第1章~第4章,此部分着重介绍新手如何学好Shell编程。涉及的内容包括Shell编程的入门介绍、基础知识、运行原理、编程语法、编程习惯、变量知识以及变量的深入实践。第二部分为第5章~...

    Linux shell编程指南

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...

    LINUX与UNIX SHELL编程指南 高清PDF

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...

    Shell脚本case语句简明教程

    Shell case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下: 代码如下: case 值 in 模式1)  command1  command2  …  commandN  ;; 模式2)  ...

    linux bash shell中case语句的实例

    本文介绍下,在bash shell编程中,有关case语句的一个例子,学习下case语句的用法,有需要的朋友参考下

    shell编程基础(linux编程方向)

    • 5 case 语句 o 5.1 select 语句 o 5.2 while/for 循环 • 6 Shell里的一些特殊符号 o 6.1 引号 o 6.2 Here documents • 7 Shell里的函数 • 8 命令行参数 • 9 Shell脚本示例 o 9.1 一般编程步骤 o ...

Global site tag (gtag.js) - Google Analytics