`
shicheng
  • 浏览: 165282 次
  • 性别: 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

    Linux命令行与shell脚本编程-图形化桌面的脚本编程案例代码

    在Linux操作系统中,命令行和Shell脚本编程是日常系统管理及自动化任务的重要工具。本文将深入探讨如何在Linux环境中利用Shell脚本实现图形化桌面的交互式功能,特别是通过`msgbox`、`select`命令以及`dialog`工具来...

    shell脚本相关资料

    下面将详细讨论shell脚本的基本概念、常用命令、语法结构以及如何编写和运行shell脚本。 1. Shell的基本概念 Shell是用户与操作系统内核交互的接口,提供了一种命令行环境,让用户通过输入指令来控制计算机。在...

    shell脚本和case 使用相关的例子

    本文将探讨shell脚本中的“case”语句,以及如何通过实例来理解其用法。 首先,让我们了解什么是shell脚本。Shell脚本本质上就是一种文本文件,包含了可由shell解释器执行的命令。它允许用户自定义工作流程,比如...

    常用shell脚本总结

    本篇文章将深入探讨shell脚本的基础知识,包括基本语法、变量、条件语句、循环结构、函数以及一些实用的内置命令。 首先,让我们了解什么是Shell。Shell是操作系统提供的一种命令解释器,用户可以通过Shell与系统...

    shell脚本编译基础

    通过以上内容的学习,我们可以了解到Shell脚本编写的基本规则、常用方法以及基础语法,这些知识点对于初学者来说是非常重要的。熟练掌握这些内容能够帮助开发者更高效地利用Shell脚本来处理日常任务。

    LinuxShell脚本编程实例.doc

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

    [Linux]Shell脚本编程详解

    这篇文章将深入探讨Shell脚本编程的基础知识,包括语法、常用命令以及如何创建和运行自定义脚本。 1. Shell介绍 Shell是Linux系统中的一个命令解释器,它提供了用户与操作系统内核交互的界面。常见的Shell有Bash...

    运维技术课程 Linux学习教程 Shell编程-2 共31页.pptx

    根据提供的文件信息,我们可以深入探讨Linux运维技术课程中关于Shell编程的部分内容,特别是Shell编程-2部分所涉及的关键知识...这些知识点对于理解和编写有效的Shell脚本至关重要,也是Linux运维人员必备的技能之一。

    开启、停止 nginx 的shell脚本

    标题中的“开启、停止 nginx 的 shell 脚本”指的是使用 Linux shell 脚本来启动或停止 Nginx 服务器,这是一个常见的系统管理员任务。Nginx 是一款高性能的 Web 和反向代理服务器,广泛应用于网站托管和服务提供。...

    shell脚本基础刘晓涛讲解

    Shell脚本基础是Linux系统管理和自动化任务中必不可少的技能,由刘晓涛讲解的课程适合初学者入门。本文将深入探讨Shell脚本的基础知识,包括创建与执行脚本、使用命令、变量、条件语句以及流程控制等核心概念。 1. ...

    shell脚本写法:复杂数学式,字符串,布尔值,case写法

    在Shell脚本中使用case时,模式匹配的语法非常灵活。例如: ```shell case $user in rich|banana) echo "1" ;; testing) echo "2" ;; *) echo "3" ;; esac ``` 在上述case结构中,`rich|banana`是一个...

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

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

    马哥运维推荐的108道Shell脚本面试真题

    Shell脚本是Linux系统管理的重要工具,用于自动化执行一系列命令任务。它们是必需的,因为它们极大地提高了效率,尤其在日常运维工作中。一个Shell脚本是一个包含一系列命令的文本文件,能够按照预设顺序执行这些...

    shell基本语法 (可下载示例代码)

    1. **Shell脚本基础**: - 脚本开头:一个Shell脚本通常以`#!/bin/bash`或`#!/bin/sh`开头,声明解释器类型。 - 变量:变量用于存储数据,如`NAME="John"`,可以通过`echo $NAME`来访问。 - 注释:使用`#`字符...

    shell 基本语法

    在Shell脚本中,注释是一种非常重要的元素,它能够帮助我们理解脚本的工作原理,同时也方便后续的维护与更新。注释通常以`#`符号开头,在此之后的内容会被Shell解释器忽略。 **示例代码:** ```sh #!/bin/sh # 这是...

    Linux实验shell脚本.doc

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

Global site tag (gtag.js) - Google Analytics