在shell变成中,case语句是if语句的一种扩展,将if中的判断语句,展开,同一个变量,对应多个可能的值时,执行不同的操作。具体句型如下:

case "变量" in
values1)
指令,执行的操作
;;
values2)
指令,执行的操作
;;
*)
指令,执行的操作
esac

  最常用的case语句,应用在各个程序的启动脚本中,通常是start|stop|restart等等。下面就自己写一个关于mysql服务脚本的启动,实际上也是对support-files/mysql.server的一种理解而已。具体代码如下:

BaseDir=/app/mysql
BinDir=$BaseDir/support-files/mysql.server if [ $# -ne ]
then
echo "Usage:$0 {start|stop|restart}"
fi start() {
if [ "`ps -ef|grep mysqld|grep -v grep|wc -l`" -ne ]
then
echo "The mysql server is running!"
exit
else
echo "Starting Mysql server..."
$BinDir start >/dev/null >/dev/null
[ $? -eq ] && action "starting mysql server " /bin/true || action "starting mysql server " /bin/false
exit
fi
} stop() {
if [ "`ps -ef|grep mysqld|grep -v grep|wc -l`" -eq ]
then
echo "The mysql server is not running"
exit
else
echo "Stopping mysql server"
$BinDir stop >/dev/null >/dev/null
[ $? -eq ] && action "stopping mysql server " /bin/true || action "stopping mysql server " /bin/false
exit
fi
} restart() { if [ "`ps -ef|grep mysqld|grep -v grep|wc -l`" -eq ]
then
sh $ start
exit
else
sh $ stop
sh $ start
exit
fi
}
case $ in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
exit
esac

  首先是定义这个脚本的用法,需要的参数,然后就是定义了三个函数,实际上这三个函数在functions中也有定义过,由于是加载了functions这个脚本,所以在定义函数的时候能看到是特殊字体。最后才是一个case语句。可以测试一下操作脚本。

[root@CentOS_client server_scripts]# sh mysql_script.sh start
Starting Mysql server...
starting mysql server [ OK ]
tcp 0.0.0.0: 0.0.0.0:* LISTEN /mysqld
[root@CentOS_client server_scripts]# sh mysql_script.sh start
The mysql server is running!
[root@CentOS_client server_scripts]# sh mysql_script.sh stop
Stopping mysql server...
stopping mysql server [ OK ]
[root@CentOS_client server_scripts]# sh mysql_script.sh stop
The mysql server is not running
[root@CentOS_client server_scripts]# sh mysql_script.sh restart
Starting Mysql server...
starting mysql server [ OK ]
tcp 0.0.0.0: 0.0.0.0:* LISTEN /mysqld
[root@CentOS_client server_scripts]# sh mysql_script.sh restart
Stopping mysql server...
stopping mysql server [ OK ]
Starting Mysql server...
starting mysql server [ OK ]
tcp 0.0.0.0: 0.0.0.0:* LISTEN /mysqld
[root@CentOS_client server_scripts]# sh mysql_script.sh start
The mysql server is running!
[root@CentOS_client server_scripts]#

shell之case的更多相关文章

  1. (二)shell中case语句、程序传参、while

    2.2.6.1.case语句(1)shell中的case语句和C语言中的switch case语句作用一样,格式有差异(2)shell中的case语句天生没有break,也不需要break,和C语言中 ...

  2. shell的case语句简述(shell的流控制)

    shell流控制:http://www.cnblogs.com/yunjiaofeifei/archive/2012/06/12/2546208.html 1.if then else 语句 if t ...

  3. shell的case脚本的简单入门

    shell的case脚本的简单入门 示例1: #/bin/bash a=$ case "$a" in ") echo 'hell 2';; ") echo 'h ...

  4. Shell 编程 case语句

    本篇主要写一些shell脚本case语句的使用. 字符判断 #!/bin/bash read -p "请输入一个字符:" char case $char in [a-z]|[A-Z ...

  5. shell中case的用法学习笔记

    这篇文章主要为大家介绍shell中的case语句:可以把变量的内容与多个模板进行匹配,再根据成功匹配的模板去决定应该执行哪部分代码. 本文转自:http://www.jbxue.com/article ...

  6. linux bash shell中case语句的实例

    本文介绍下,在bash shell编程中,有关case语句的一个例子,学习下case语句的用法,有需要的朋友参考下. 本文转自:http://www.jbxue.com/article/13377.h ...

  7. shell的case语句

    case语句格式 # vi test.sh : echo "input : " read num echo "the input data is $num" c ...

  8. shell if,case,for,while语法

    #shell if的语法 if [空格 xxx 空格] then echo xxxxx exit 1/2/3/4/.... 0表示正确. elif [空格 xxx 空格] then echo xxxx ...

  9. Shell脚本case语句

    case语句格式 case 变量 in PAT1) 执行语句 ;; PAT2) 执行语句 ;; *) 默认执行语句 ;; esac 使用示例: 编写一个shell脚本,通过提示用户输入信息,输出cpu ...

随机推荐

  1. layui tips

  2. 深度学习中dropout策略的理解

    现在有空整理一下关于深度学习中怎么加入dropout方法来防止测试过程的过拟合现象. 首先了解一下dropout的实现原理: 这些理论的解释在百度上有很多.... 这里重点记录一下怎么实现这一技术 参 ...

  3. springmvc拦截器匹配规则

  4. iOS一些高效代码

    一. [Bugly startWithAppId:BUGLY_APP_ID #if DEBUG developmentDevice:YES #endif config:config]; 二.

  5. Mysql(Mariadb)数据库主从复制

    Mysql主从复制的实现原理图大致如下: MySQL之间数据复制的基础是以二进制日志文件(binary log file)来实现的,一台MySQL数据库一旦启用二进制日志后,其作为master,它数据 ...

  6. 了解AutoCAD对象层次结构 —— 5 —— 块表

    为了清楚的了解块表的组成内容,让我们利用MgdDbg工具查看一下块表中的块表记录.在开始页面,以无样板模式新建一个.dwg文件(图 4‑7(1)),这样的话,默认的块表记录只有3条(图 4‑7(2)) ...

  7. BZOJ5418[Noi2018]屠龙勇士——exgcd+扩展CRT+set

    题目链接: [Noi2018]屠龙勇士 题目大意:有$n$条龙和初始$m$个武器,每个武器有一个攻击力$t_{i}$,每条龙有一个初始血量$a_{i}$和一个回复值$p_{i}$(即只要血量为负数就一 ...

  8. P1200 你的飞碟在这儿

    P1200 题目描述 众所周知,在每一个彗星后都有一只UFO.这些UFO时常来收集地球上的忠诚支持者.不幸的是,他们的飞碟每次出行都只能带上一组支持者. 因此,他们要用一种聪明的方案让这些小组提前知道 ...

  9. 【XSY1081】随机存储器 网络流

    题目描述 Bob有\(2^n\)字节的内存,编号为\([0,2^n-1)\).他想对每个字节的内存分别分配一个值.对于编号为\(i\)的内存,如果它被分配了一个值\(j(0\leq j<2^m) ...

  10. C#中 const 和 readonly 的区别

    C#中 const 和 readonly 的区别 来源 https://www.cnblogs.com/gsk99/archive/2008/10/10/1308299.html http://dev ...