shell之case
在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的更多相关文章
- (二)shell中case语句、程序传参、while
2.2.6.1.case语句(1)shell中的case语句和C语言中的switch case语句作用一样,格式有差异(2)shell中的case语句天生没有break,也不需要break,和C语言中 ...
- shell的case语句简述(shell的流控制)
shell流控制:http://www.cnblogs.com/yunjiaofeifei/archive/2012/06/12/2546208.html 1.if then else 语句 if t ...
- shell的case脚本的简单入门
shell的case脚本的简单入门 示例1: #/bin/bash a=$ case "$a" in ") echo 'hell 2';; ") echo 'h ...
- Shell 编程 case语句
本篇主要写一些shell脚本case语句的使用. 字符判断 #!/bin/bash read -p "请输入一个字符:" char case $char in [a-z]|[A-Z ...
- shell中case的用法学习笔记
这篇文章主要为大家介绍shell中的case语句:可以把变量的内容与多个模板进行匹配,再根据成功匹配的模板去决定应该执行哪部分代码. 本文转自:http://www.jbxue.com/article ...
- linux bash shell中case语句的实例
本文介绍下,在bash shell编程中,有关case语句的一个例子,学习下case语句的用法,有需要的朋友参考下. 本文转自:http://www.jbxue.com/article/13377.h ...
- shell的case语句
case语句格式 # vi test.sh : echo "input : " read num echo "the input data is $num" c ...
- shell if,case,for,while语法
#shell if的语法 if [空格 xxx 空格] then echo xxxxx exit 1/2/3/4/.... 0表示正确. elif [空格 xxx 空格] then echo xxxx ...
- Shell脚本case语句
case语句格式 case 变量 in PAT1) 执行语句 ;; PAT2) 执行语句 ;; *) 默认执行语句 ;; esac 使用示例: 编写一个shell脚本,通过提示用户输入信息,输出cpu ...
随机推荐
- Java多线程之通过标识关闭线程
package org.study2.javabase.ThreadsDemo.status; /** * @Auther:GongXingRui * @Date:2018/9/19 * @Descr ...
- oracle逗号分隔函数
SELECT wm_concat(GZTYPE) str FROM TB_FDN_WORKKIND
- [离散时间信号处理学习笔记] 3. 一些基本的LTI系统
首先我们需要先对离散时间系统进行概念上的回顾: $y[n] = T\{ x[n] \}$ 上面的式子表征了离散时间系统,也就是把输入序列$x[n]$,映射称为$y[n]$的输出序列. 不过上述式子也可 ...
- 实验吧 WEB 猫抓老鼠
人生的第一道CTF题目哇,鸡冻 其实只是学了一下HTTP抓包得到的都是什么,就开始上手胡搞了 题目名字叫猫抓老鼠,还疯狂暗示catch!catch!catch!catch!,就想到要用抓包其实我是因为 ...
- HDU1890-Robotic Sort-Splay
#include <cstdio> #include <algorithm> #include <cstring> using namespace std; #de ...
- Centos install Python3
下载Python3wget http://python.org/ftp/python/3.4.1/Python-3.4.1.tar.xz 安装yum install openssl-devel bzi ...
- HAOI2017 简要题解
「HAOI2017」新型城市化 题意 有一个 \(n\) 个点的无向图,其中只有 \(m\) 对点之间没有连边,保证这张图可以被分为至多两个团. 对于 \(m\) 对未连边的点对,判断有哪些点对满足将 ...
- BZOJ 2728: [HNOI2012]与非(位运算)
题意 定义 NAND(与非)运算,其运算结果为真当且仅当两个输入的布尔值不全为真,也就是 A NAND B = NOT(A AND B) ,运算位数不会超过 \(k\) 位, 给你 \(n\) 个整数 ...
- Android assets res 文件夹的区别
大家都知道建立一个Android项目后会产生assets与res的两个文件夹,理论上他们都是存放资源的文件夹,那么他们到底有什么区别呢? 1.assets:不会在R.java文件下生成相应的标记,存放 ...
- 【BZOJ5304】[HAOI2018]字串覆盖(后缀数组,主席树,倍增)
[BZOJ5304][HAOI2018]字串覆盖(后缀数组,主席树,倍增) 题面 BZOJ 洛谷 题解 贪心的想法是从左往右,能选就选.这个显然是正确的. 题目的数据范围很好的说明了要对于询问分开进行 ...