单分支结构
语法:
if [条件]
then
指令
fi
或
if [条件]:then
指令
fi
if单分支条件中文编程语法:
如果 [你有房]
那么
我就嫁给你
果如
提示:分号相当于命令换行,上面两种语法等用。
特殊写法:if [-f "$file1"];then echo 1;if 相当于:[if "$file1"]&& echo 1
if [ -f "$file1" ] :then
echo 1
fi
范例1:
#!/bin/bash #功能:单分支if结构整数比较,用-lt格式例子 if [ 10 -lt 12 ] then echo "yes" fi 执行结果: [root@XCN if]# sh test1.sh yes #提示:当比较条件为整数数字时
范例2:使用read及脚本传参方式如果实现上述整数的比较?
解答:
特别强调:read读入和命令行传参是两种输入内容的方法。
1)脚本传参的方式脚本例子
#!/bin/bash if [ $1 -lt $2 ]: then echo "yes,$1 less then $2" fi 输入结果 [root@XCN if]# sh if2.sh 1 2 yes,1 less then 2
2)单分支if判断两整数大小三种情况的脚本例子(以read读入为例)
#!/bin/bash read -p "pls input two num:" a b if [ $a -lt $b ];then echo "yes,$a less than $b" exit fi if [ $a -eq $b ];then echo "yes,$a eaual $b" exit fi if [ $a -gt $b ];then echo "yes,$a greater than $b" exit fi 见证奇迹的时刻: [root@localhost shell]# sh if1.sh pls input two num:1 2 yes,1 less than 2
范例3:开发shell脚本实现如果/server/scipts下面存在if3.sh的内容就输出到屏幕
注意:如果执行脚本后发现该if3.sh不存在,就自动创建这个if3.sh脚本
#!/bin/bash path=/server/scripts file=if3.sh #no1 if [ ! -d $path ] then mkdir -p $path echo "$path is not exist,already created it." fi #no2 if [ ! -f $path/$file ] then touch $path/$file echo "$file is not exist,alreadt created it." exit fi #no3 echo "ls -l $path/$file" ls -l $path/$file ~ 执行输出: [root@localhost ~]# sh if.sh /server/scripts is not exist,already created it. if3.sh is not exist,alreadt created it.
范例4:开发脚本判断系统剩余内存大小,如果低于100M就邮件报警。
测试报警成功后加入系统定时任务每3分钟执行一次检查。
思路:
如果去内容,去内存那个选项。
[root@ailuoli ~]# free -m|grep buffers/ |awk ' {print $NF}' 1781
2.发邮件mail,mutt。sendmail服务器要开启
[root@ailuoli ~]# yum install sendmail [root@ailuoli ~]# /etc/init.d/sendmail start Starting sendmail: [ OK ] Starting sm-client: [ OK ] [root@ailuoli ~]#echo "xcn"|mail -s "title" 995345781@qq.com
3.编写脚本
#!/bin/bash userd_mem=`free -m|grep buffers/ |awk ' {print $NF}'` if [ $userd_mem -lt 100 ] then echo "menm is not enough,$userd_men."|mail -s "mem warning $(date +%F)" 995345781@qq.com fi
三分钟监测一次:
*/3 * * * * /bin/bash /mem.sh