`
shicheng
  • 浏览: 162857 次
  • 性别: Icon_minigender_1
  • 来自: 泉州
社区版块
存档分类
最新评论

Shell脚本语法--case/esac

阅读更多

case命令可类比C语言的switch/case语句,esac表示case语句块的结束。C语言的case只能匹配整型或字符型常量表达式,而Shell脚本的case可以匹配字符串和Wildcard,每个匹配分支可以有若干条命令,末尾必须以;;结束,执行时找到第一个匹配的分支并执行相应的命令,然后直接跳到esac之后,不需要像C语言一样用break跳出。

#! /bin/sh

echo "Is it morning? Please answer yes or no."
read YES_OR_NO
case "$YES_OR_NO" in
yes|y|Yes|YES)
  echo "Good Morning!";;
[nN]*)
  echo "Good Afternoon!";;
*)
  echo "Sorry, $YES_OR_NO not recognized. Enter yes or no."
  exit 1;;
esac
exit 0

使用case语句的例子可以在系统服务的脚本目录/etc/init.d中找到。这个目录下的脚本大多具有这种形式(以/etc/apache2为例):

case $1 in
	start)
		...
	;;
	stop)
		...
	;;
	reload | force-reload)
		...
	;;
	restart)
	...
	*)
		log_success_msg "Usage: /etc/init.d/apache2 {start|stop|restart|reload|force-reload|start-htcacheclean|stop-htcacheclean}"
		exit 1
	;;
esac

启动apache2服务的命令是

$ sudo /etc/init.d/apache2 start

$1是一个特殊变量,在执行脚本时自动取值为第一个命令行参数,也就是start,所以进入start)分支执行相关的命令。同理,命令行参数指定为stopreloadrestart可以进入其它分支执行停止服务、重新加载配置文件或重新启动服务的相关命令。

分享到:
评论

相关推荐

    【shell】shell脚本语法

    希望各位不要白piao,点个赞或者刷个评论再走,还有【禁止转载】 ...case/esac -> 就是java 中的switch as,以及在shell底层脚本中的使用 for/do/done -> 几种实用的for循环写法 while/do/done break和continue

    Shell脚本-从入门到精通.ppt

    shell脚本编程基础知识点 shell脚本是Linux操作系统中的一种编程语言,用于自动执行一系列命令。shell脚本文件是一个纯文本文件,可以使用任何文本编辑器编写,通常以.sh作为后缀名。 一、shell脚本的基本结构 ...

    shell脚本语言.pdf

    "shell脚本语言" Shell 简介: Shell 是一种命令语言和程序设计语言,用户可以通过 Shell 完成大部分工作。Shell 既可以交互式地解释和执行用户输入的命令,也可以定义各种变量和参数,提供了许多控制结构,包括...

    LinuxShell脚本编程实例.doc

    本文将通过实例讲解Linux Shell脚本编程的基本概念、语法和应用。 一、基本概念 1. Shell脚本是什么? Shell脚本是指使用Shell命令语言编写的程序,用于自动执行一系列任务或操作。Shell脚本通常以文本文件形式...

    SHELL脚本练习 写一个脚本,利用循环计算10的阶乘

    SHELL脚本练习 SHELL脚本是一种强大的命令行脚本语言,它可以自动执行一系列命令,提高工作效率和简化操作。下面我们将通过六个实践练习,深入了解SHELL脚本的编写和应用。 1. 计算10的阶乘 在这个练习中,我们将...

    人性化解析shell脚本,保证快速入门sh,bash,shell入门.pdf

    "人性化解析shell脚本,快速入门sh、bash、shell入门" Shell脚本是Linux操作系统中的一种编程语言,用于自动化系统管理和任务...通过这些示例,读者可以快速入门Shell脚本,并了解基本的Shell脚本语法和使用方法。

    debian安装java环境文档

    case "$1" in start) echo "Starting tomcat5..." /usr/local/tomcat/bin/startup.sh ;; stop) echo "Stopping tomcat5..." /usr/local/tomcat/bin/shutdown.sh ;; *) echo "Usage tomcat.sh start/stop" ...

    shell脚本学习手册

    1、shell脚本 3 2、shell脚本实践 4 Shell变量 4 1、使用变量 5 2、只读变量 5 3、删除变量 5 4、变量类型 6 5、shell字符串 6 6、Shell数组 7 7、Shell注释 9 Shell传递参数 9 1、实例 9 Shell数组 11 Shell运算符 ...

    Linux实验shell脚本.doc

    Linux实验shell脚本 Linux实验shell脚本是Linux系统中的一种自动化工具,使用shell脚本可以实现自动...本文档只是对shell脚本的基本概念和语法进行了简单的介绍,希望读者通过本文档可以获得基本的shell脚本编写能力。

    shell脚本之特殊符号总结性梳理

    shell脚本之特殊符号总结性梳理 shell脚本中有一些特殊符号,掌握这些符号的用法是非常重要的。本文将对shell脚本中的特殊符号进行总结性梳理。 1.井号( comments ) 井号(#)符号几乎出现在 shell 脚本中的每一...

    Mongodb副本集群配置.docx

    case "$1" in start) start ;; stop) stop ;; restart) stop; start ;; *) echo $"Usage: $0 {start|stop|restart}" exit 1 esac 六、赋予脚本执行权限 在创建好启动脚本之后,我们需要赋予其执行权限,以便我们...

    linux中mysql开机自动启动3种方法.docx

    case $1 in start) function_start_mysql ;; stop) function_stop_mysql ;; restart) function_restart_mysql ;; *) echo "Usage: $0 {start|stop|restart}" ;; esac ``` 这三个方法都可以实现 Linux 中 MySQL ...

    Linux负载均衡--LVS+Keepalived(终极文档).pdf

    在本文档中,我们将使用 shell 脚本来配置 LVS。我们的配置脚本如下所示: ``` #!/bin/bash VIP=202.168.128.202 RIP1=172.24.100.4 RIP2=172.24.100.5 case "$1" in start) echo "start LVS of DirectorServer...

    Shell编程之case语句实战(小结)

    其实case语句还是很好理解的,在shell编程中,if语句有它的语法,函数也有它的语法,那么在我们shell编程中的case语句也是有它的语法的,如下: case 变量名 in 值1) 指令1 ;; 值2) 指令2 ;; 值3) 指令3 ;...

    Shell脚本case语句简明教程

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

    shell中的 case in 用法

    esac都是shell关键字 expression是表达式(既可以是一个变量,一个数字,一个字符串,还可以是一个数学计算表达式,或者是命令的执行结果,只要可以得到expression的值就行) pattern是匹配模式(一个数字,一个字符...

    ESAC-Astrostatistics-School-:2014年在ESAC庆祝的学校讲义和练习

    ESAC-天文统计-学校- 2014年在ESAC庆祝的学校讲义和练习

    suntao789#shellScript#8 case和esac1

    echo "You have typed : $userinput"echo '用两个分号结束是为了支持多条语句'使用case开始,esac结束,类比于if开始

    详解shell脚本中的case条件语句介绍和使用案例

    #前言:这篇我们接着写shell的另外一个条件语句case,上篇讲解了if条件语句。case条件语句我们常用于实现系统服务启动脚本等场景,case条件语句也相当于if条件语句多分支结构,多个选择,case看起来更规范和易读 #...

    Ubuntu下ibus的设置参考.pdf

    case "$TERM" in xterm-color) color_prompt=yes;; esac # uncomment for a colored prompt, if the terminal has the capability; turned # off by default to not distract the user: the focus in a terminal ...

Global site tag (gtag.js) - Google Analytics