if 条件语句语法
1.单分支结构
if < 条件表达式 >; then
指令
fi
2.双分支结构
if < 条件表达式 >; then
指令 1
else
指令 2
fi
3.多分支结构
if < 条件表达式 1 >; then
指令 1
else if < 条件表达式 2 >;then
指令 2
elif < 条件表达式 3 >;then
指令 3
else
指令 4
fi
if 条件语句多种条件表达式语法
1.test 条件表达式
if test 表达式;then
指令
if
[] 条件表达式
if [ 表达式 ];then
指令
if
[[]] 条件表达式
if [[ 表达式 ]];then
指令
if
(()) 条件表达式
if (( 表达式 ));then
指令
if
5.命令表达式
if 命令;then
指令
if
案例一:
编写 Shell 脚本判断系统剩余内存大小,为方便测试,如果低于 1000M,则发送邮件报警,加入定时任务,每 3 分钟执行一次
1.安装 mail 客户端
yum install mail -y
echo "
set [email protected] smtp=smtp.163.com
set [email protected] smtp-auth-password=password smtp-auth=login " >> /etc/mail.rc
2.编辑 Shell 脚本
#!/bin/bash
free=`free -m|awk ‘NR==3{print $NF}‘`
age="Mem:$free insufficient memory"
if [ $free -lt 1000 ];then
echo $age|tee /home/while.log
mail -s "`date -u +%F_%X`" [email protected] < /home/while.log
fi
案例二:
简单判断数据库服务是否正常运行
方法一:
#!/bib/basg
if [ `netstat -lntp|grep mysqld|wc -l` -gt 0 ];then
echo "zheng chang"
else
echo "yi chang"
fi
方法二:
#!/bib/basg
if [ `ps -fe|grep mysqld|grep -v grep|wc -l` -gt 0 ];then
echo "zheng chang"
else
echo "yi chang"
fi
方法三:
#!/bin/bash
[ `rpm -qa nmap|wc -l` -lt 1 ] && yum install nmap -y &>/dev/null
if [ `nmap 192.168.1.1 -p 3306 2>/dev/null|grep open|wc -l` -gt 0 ];then
echo "zheng chang"
else
echo "yi chang"
service mysqld start
fi
方法四:
#!/bin/bash
[ `rpm -qa nc|wc -l` -lt 1 ] && yum install nc -y &>/dev/null
if [ `nc -w 2 192.168.1.1 3306 &>/dev/null && echo ok | grep ok | wc -l` -gt 0 ];then
echo "zheng chang"
else
echo "yi chang"
service mysqld start
fi