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 ...
随机推荐
- Map接口----Map中嵌套Map
package cn.good.com; import java.util.HashMap; import java.util.Iterator; import java.util.Map; impo ...
- JS--bom对象:borswer object model浏览器对象模型
bom对象:borswer object model浏览器对象模型 navigator获取客户机的信息(浏览器的信息) navigator.appName;获得浏览器的名称 window:窗口对象 a ...
- faster rcnn训练详解
http://blog.csdn.net/zy1034092330/article/details/62044941 py-faster-rcnn训练自己的数据:流程很详细并附代码 https://h ...
- Js 布尔值操作符
在js中,逻辑与(&&) 和 逻辑或(||)可以对任意的数据类型进行操作,而在高级程序设计中只给出了一系列的规则,并没有进行解释,所以经常记不住.在读其它书籍的时候,读到了它的原理,其 ...
- P1880 [NOI1995]石子合并 区间dp+拆环成链
思路 :一道经典的区间dp 唯一不同的时候 终点和起点相连 所以要拆环成链 只需要把1-n的数组在n+1-2*n复制一遍就行了 #include<bits/stdc++.h> usi ...
- P2084 进制转换
原题链接 https://www.luogu.org/problemnew/show/P2084 这个题的思路就是先将输入的数字存到字符数组里,然后求出这一串数字中的非0元素的个数total,并记录最 ...
- 【XSY2484】mex 离散化 线段树
题目大意 给你一个无限长的数组,初始的时候都为\(0\),有3种操作: 操作\(1\)是把给定区间\([l,r]\)设为\(1\): 操作\(2\)是把给定区间\([l,r]\)设为\(0\): 操作 ...
- 爬虫_中国天气网_文字天气预报(xpath)
import requests from lxml import etree headers = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/5 ...
- Apache 跟踪用户会话
打开usertrack_module LoadModule usertrack_module modules/mod_usertrack.so 配置跟踪选项 <IfModule usertrac ...
- 用Nifi 从web api 取数据到HDFS
1. 全景图 2. 用ExecuteScript生成动态日期参数 为了只生成一个flowfile: Groovy 代码: import org.apache.commons.io. ...