测试语句
格式一 test
格式二 [ <测试表达式> ]
格式三 [[ <测试表达式> ]]
字符串测试比较
注意事项:
1 字符串或字符串变量比较都要加双引号再比较;
2 字符串或字符串变量比较,比较符号两端都最好都有空格;
整数二元比较操作符
逻辑操作符
在[ ]中是使用的逻辑操作符 | 在[[ ]]中使用的逻辑操作符 | 说明 |
-a | && | |
-o | || | |
! | ! |
监控MySQL是否异常,如果异常则启动.
Web服务监控手段.
Shell变量输入
read -t 5 -p "pls input:" a
#!/bin/sh read -p "pls input two num:" a b [ -z "$a" ] || [ -z "$b" ] && { echo "pls input two num again" exit 1 } expr $a + 0 &> /dev/null RETVAL1=$? expr $b + 0 &> /dev/null RETVAL2=$? #[ $RETVAL1 -ne 0 -o $RETVAL2 -ne 0 ] && { # echo "pls input two num again" # exit 2 #} test $RETVAL1 -ne 0 -o $RETVAL2 -ne 0 && { echo "pls input two num again" exit 2 } [ $a -lt $b ] && { echo "$a < $b" exit 0 } [ $a -eq $b ] && { echo "$a == $b" exit 0 } [ $a -gt $b ] && { echo "$a > $b" exit 0 }
变量的数值计算
expr
bc 是unix下的计算器,支持小数运算和整数运算
变量替换避免误操作
运算符号 | 替换 |
${value:-word} | 如果变量名存在且非null,则返回变量的值。否则,返回word字符串。 用途:如果变量未定义,则返回默认值。 范例:${value:-word},如果value未定义,则表达式的值为word。 |
${value:=word} | 如果变量名存在且非null,则返回变量的值。否则,设置这个变量值为word,并返回其值。 用途:如果变量未定义,则设置变量为默认值,并返回默认值。 范例:${value:=word},如果value未定义,则设置value值为word,返回表达式的值也为word。 |
${value:?"not defined"} | 如果变量名存在且非null,则返回变量的值,否则显示变量名message, 并且退出当前的命令或者脚本。 用途:用于捕捉由于变量未定义而导致的错误,并退出程序。 范例:${value:?"not defined"}如果value未定义,则显示-bash:value: not defined 并退出。 |
${value:+word} | 如果变量名存在且非null,则返回word。否则返回null。 用途:测试变量是否存在。 范例:${value:+word}如果value已经定义,返回word(也就是真)。 |
Shell特殊变量
1、位置变量
$0 获取当前执行的shell脚本的文件名
$n 获取当前执行的shell脚本的第n个参数值,n=1..9,当n=0时表示脚本的文件名,如果n大于9,需要用大括号括起来${10}
$# 获取当前执行的shell脚本后面接的参数总的个数
$*
$@
$*与$@的区别?
dirname $0
basename $0
2、进程状态变量
$? 获取执行上一个指令的返回值(0为成功,非零为失败)
$$ 获取当前shell脚本的进程号(PID)
$! 获取上一个指令的PID
$_ 在此之前执行命令的最后一个参数
参考:linux下set和eval的使用小案例精彩解答;
Shell函数
#!/bin/sh if [ $# -ne 1 ] then echo "Usage:$0 {url}." exit 1 fi function Check_Url(){ curl -o /dev/null -s -w "%{http_code}" $1 && return 0 || return 1 } Check_Url $1
脚本启动Mysql单实例和多实例
把脚本放到/etc/init.d,实现/etc/init.d/mysql01 start 启动,并且通过chkconfig对其进行开机启动和管理.
怎么把自己写的脚本添加到服务里面,即可以使用service命令来调用?
#!/bin/sh # chkconfig: 2345 20 60 # description: start or stop mysqld service