1. 单分支if条件语句
(1)格式如下:
if [ 条件判断式 ]
then
程序
fi
(2)或者格式如下:
if [ 条件判断式 ] ; then
程序
fi
注意事项:
(1) If后面就是test判断式,中括号和条件判断式之间必须有空格
(2) 个人比较喜欢第一种格式,因为他跟c、Java等语言格式比较类似
(3) if语句使用fi结尾,和一般语言使用大括号结尾不同
举个栗子:
- (1)判断分区使用率,如果根分区的使用率大于10%的话,就报警(为了实现才写成的10%),开始编写shell脚本
(2)进行测试
2. 双分支if条件语句
格式如下:
if [ 条件判断式 ]
then
条件成立时,执行的程序
else
条件不成立时,执行的另一个程序
fi
举个栗子:
- (1) 备份MySQL数据库
注意: 必须联网才能同步时间 - (2)备份/etc目录
- (3)判断apache是否启动
判断apache是否启动小疑问: 这里为什么用nmap来判断apache是否启动那???
<1> 要想判断一个服务是运行的,有多种方法可以看到,可以用ps命令。这个是grep进程,不能说明是apache运行了。
开启apache服务之后在查,在用ps查询,这时才开启。 但是这里存在一个问题: 启动阿帕奇之后,就会查找到了。但是有些情况下,就算阿帕奇启动了,但是死机了,如果查了阿帕奇的进程在这,但是不能相应客户端的请求了,因为被人的恶意攻击,把我的apache服务器给托死了。所以这种方法不一定准。
<2> 判断apache是否启动,也可以判断端口,只要看到80端口,就证明阿帕奇就是启动的,这样同样存在问题, 他不能确定你的apache能不能正常连接,正常提供访问,他只能确定阿帕奇是正常启动的。有可能后台死机了,根本不能提供访问。 不光是阿帕奇可以占用80端口,其他的网页服务也有的占用80端口。
<3> 判断apache是否启动,最有效的是nmap命令(在shell脚本中使用的就是nmap),是远程扫描命令, 他是个扫描工具,用它扫描我的计算机,如果能正常连接阿帕奇的端口,就能返回阿帕奇的状况,是open,证明是打开的,可以正常访问,这样更准确。nmap的功能特别强大。nmap默认是没有装的。用yum装一下就行了。yum -y install nmap
提示: 在这个脚本中设置一个定时任务,每15分钟执行一次,这个脚本非常用。
3. 多分支if条件语句
格式如下:
if [ 条件判断式1 ]
then
当条件判断式1成立时,执行程序1
elif [ 条件判断式2 ]
then
当条件判断式2成立时,执行程序2
.........省略更多条件...............
else
当所有条件都不成立时,最后执行此程序
fi
举个栗子:
- (1)判断用户输入的式什么文件,编写shell脚本。
(2)开始测试
小提示: exit 1 跳出的返回值(代码)自定义为1,如果在这里跳出了,我用echo $?
去查的时候返回值就是1。如果不写exit,虽然这块命令执行了,但是还是会向下继续执行,不会终止我的if语句。
注意: 报错完一定要写exit 跳出程序,否则下面的内容还是会执行。
4. 总结
所有的计算机技术不是学会的,而是练会的。所以要多写代码,这样才能熟练掌握。建立编程思想。