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)
分支执行相关的命令。同理,命令行参数指定为stop
、reload
或restart
可以进入其它分支执行停止服务、重新加载配置文件或重新启动服务的相关命令。
分享到:
相关推荐
希望各位不要白piao,点个赞或者刷个评论再走,还有【禁止转载】 ...case/esac -> 就是java 中的switch as,以及在shell底层脚本中的使用 for/do/done -> 几种实用的for循环写法 while/do/done break和continue
shell脚本编程基础知识点 shell脚本是Linux操作系统中的一种编程语言,用于自动执行一系列命令。shell脚本文件是一个纯文本文件,可以使用任何文本编辑器编写,通常以.sh作为后缀名。 一、shell脚本的基本结构 ...
"shell脚本语言" Shell 简介: Shell 是一种命令语言和程序设计语言,用户可以通过 Shell 完成大部分工作。Shell 既可以交互式地解释和执行用户输入的命令,也可以定义各种变量和参数,提供了许多控制结构,包括...
本文将通过实例讲解Linux Shell脚本编程的基本概念、语法和应用。 一、基本概念 1. Shell脚本是什么? Shell脚本是指使用Shell命令语言编写的程序,用于自动执行一系列任务或操作。Shell脚本通常以文本文件形式...
SHELL脚本练习 SHELL脚本是一种强大的命令行脚本语言,它可以自动执行一系列命令,提高工作效率和简化操作。下面我们将通过六个实践练习,深入了解SHELL脚本的编写和应用。 1. 计算10的阶乘 在这个练习中,我们将...
"人性化解析shell脚本,快速入门sh、bash、shell入门" Shell脚本是Linux操作系统中的一种编程语言,用于自动化系统管理和任务...通过这些示例,读者可以快速入门Shell脚本,并了解基本的Shell脚本语法和使用方法。
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" ...
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脚本 Linux实验shell脚本是Linux系统中的一种自动化工具,使用shell脚本可以实现自动...本文档只是对shell脚本的基本概念和语法进行了简单的介绍,希望读者通过本文档可以获得基本的shell脚本编写能力。
shell脚本之特殊符号总结性梳理 shell脚本中有一些特殊符号,掌握这些符号的用法是非常重要的。本文将对shell脚本中的特殊符号进行总结性梳理。 1.井号( comments ) 井号(#)符号几乎出现在 shell 脚本中的每一...
case "$1" in start) start ;; stop) stop ;; restart) stop; start ;; *) echo $"Usage: $0 {start|stop|restart}" exit 1 esac 六、赋予脚本执行权限 在创建好启动脚本之后,我们需要赋予其执行权限,以便我们...
case $1 in start) function_start_mysql ;; stop) function_stop_mysql ;; restart) function_restart_mysql ;; *) echo "Usage: $0 {start|stop|restart}" ;; esac ``` 这三个方法都可以实现 Linux 中 MySQL ...
在本文档中,我们将使用 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...
其实case语句还是很好理解的,在shell编程中,if语句有它的语法,函数也有它的语法,那么在我们shell编程中的case语句也是有它的语法的,如下: case 变量名 in 值1) 指令1 ;; 值2) 指令2 ;; 值3) 指令3 ;...
Shell case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下: 代码如下: case 值 in 模式1) command1 command2 … commandN ;; 模式2) ...
esac都是shell关键字 expression是表达式(既可以是一个变量,一个数字,一个字符串,还可以是一个数学计算表达式,或者是命令的执行结果,只要可以得到expression的值就行) pattern是匹配模式(一个数字,一个字符...
ESAC-天文统计-学校- 2014年在ESAC庆祝的学校讲义和练习
echo "You have typed : $userinput"echo '用两个分号结束是为了支持多条语句'使用case开始,esac结束,类比于if开始
#前言:这篇我们接着写shell的另外一个条件语句case,上篇讲解了if条件语句。case条件语句我们常用于实现系统服务启动脚本等场景,case条件语句也相当于if条件语句多分支结构,多个选择,case看起来更规范和易读 #...
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 ...