if语句是实际工作中最重要最常用的语句。
if条件语法:
单分支结构
if [ 条件 ]
then
指令
fi
或
if [ 条件 ];then
指令
fi
if 单分支条件中文编程形象语法:
如果 [ 你有房 ]
那么
我就嫁给你
果如
前文的文件条件表达式[ -f”$file” ]&& echo 1 就相当于下面的if语句:
if [ -f”$file” ];then
echo 1
fi
双分支结构:
双分支结构:
语法:
if [ 条件 ]
then
指令集1
else
指令集2
fi
if双分支中文编程语法形象描述:
如果 [ 你漂亮 ]
那么
我就娶你
否则
Good bye!
果如
提示:
前文的文件条件表达式 [ -f”$file” ]&& echo 1 ||echo 0
相当于双分支的 if [ -f”$file” ];then echo 1;else echo 0;fi
多分支结构:
语法:
if 条件1
then
指令1
elif 条件2
then
指令2
else
指令3
fi
--------------------------------多个elif--------------------------------
if 条件
then
指令
elif 条件
then
指令
elif 条件
then
指令
……
else
指令
fi
多分支if语句中文编程语法形象描述:
如果 [ 你有房 ]
那么
我就嫁你
或者如果 [ 你爸是局长 ]
那么
我就嫁你
或者如果 [ 你很有上进心 ]
那么
我们可以先谈男女朋友
否则
Good bye!
果如
提示:
1、结尾的else后面没有then。
2、注意多分支elif的写法elif条件;then,不要落下了then。
---------------------------------------------------华丽的分割线------------------------------------------------
例如:开发shell脚本判断系统剩余内存的大小,并且加入系统定时任务1分钟执行一次检查,如果低于100M就邮件报警给管理员。(由于测试,把系统内存阀值调制900M)
①获取系统内存大小
free –m|grep buffers\/|awk ‘{print $NF}’
free –m|grep buffers/|awk ‘{print $NF}'
free –m|awk ‘NR==3 {print $NF}’
②配置邮件
参考前文:https://www.cnblogs.com/su-root/p/10092469.html
③编写脚本
#!/bin/sh
cur_free=`free -m|awk 'NR==3 {print $NF}'`
chars="当前系统内存$cur_free不够用,邮件提醒管理员中......"
if [ $cur_free -lt 900 ]
then
echo `date +%y-%m-%d_%H:%M:%S` $chars >>/tmp/buffer.log
echo $chars|mail -s "系统警告" 1147076062@qq.com
fi
④定时任务
[root@lamp01 scripts]# crontab -e crontab: installing new crontab [root@lamp01 scripts]# crontab -l ########linux ncjk free -m######## * * * * * /bin/sh /server/scripts/jknc.sh >/dev/null 2>&1 [root@lamp01 scripts]#