11.5.1 Shell编程-流程控制-if语句

时间:2026-01-19   来源:未知    
字号:

11.5.1 Shell编程-流程控制-if语句

11.5.1 Shell编程-流程控制-if语句

第十一讲 Shell编程

主讲人:沈超(http:///lampsc) 交流论坛:http://

11.5.1 Shell编程-流程控制-if语句

课程大纲11.1 11.2 11.3 11.4 11.5 基础正则表达式 字符截取命令 字符处理命令 条件判断 流程控制

11.5.1 Shell编程-流程控制-if语句

11.5.1 11.5.2 11.5.3 11.5.4

if语句 case语句 for循环 while循环

11.5.1 Shell编程-流程控制-if语句

1、 单分支if条件语句if [ 条件判断式 ];then 程序 fi 或者 if [ 条件判断式 ] then 程序 fi

11.5.1 Shell编程-流程控制-if语句

单分支条件语句需要注意几个点 if语句使用fi结尾,和一般语言使用大括 号结尾不同 [ 条件判断式 ]就是使用test命令判断,所 以中括号和条件判断式之间必须有空格 then后面跟符合条件之后执行的程序,可 以放在[]之后,用“;”分割。也可以换 行写入,就不需要“;”了

11.5.1 Shell编程-流程控制-if语句

例子:判断分区使用率#!/bin/bash#统计根分区使用率

# Author: shenchao (E-mail: shenchao@http://) rate=$(df -h | grep "/dev/sda3" | awk '{print $5}' | cut -d "%" f1)#把根分区使用率作为变量值赋予变量rate

if [ $rate -ge 80 ] then echo "Warning! /dev/sda3 is full!!" fi

11.5.1 Shell编程-流程控制-if语句

2、双分支if条件语句if [ 条件判断式 ] then 条件成立时,执行的程序 else 条件不成立时,执行的另一个程序 fi

11.5.1 Shell编程-流程控制-if语句

例子1:备份mysql数据库#!/bin/bash#备份mysql数据库。

# Author: shenchao (E-mail: shenchao@http://) ntpdate http:// &>/dev/null#同步系统时间

date=$(date +%y%m%d)#把当前系统时间按照“年月日”格式赋予变量date

size=$(du -sh /var/lib/mysql)#统计mysql数据库的大小,并把大小赋予size变量

11.5.1 Shell编程-流程控制-if语句

if [ -d /tmp/dbbak ] then echo "Date : $date!" > /tmp/dbbak/dbinfo.txt echo "Data size : $size" >> /tmp/dbbak/dbinfo.txt cd /tmp/dbbak tar -zcf mysql-lib-$date.tar.gz /var/lib/mysql &>/dev/null rm -rf /tmp/dbbak/dbinfo.txt else mkdir /tmp/dbbak echo "Date : $date!" > /tmp/dbbak/dbinfo.txt echo "Data size : $size" >> /tmp/dbbak/dbinfo.txt cd /tmp/dbbak tar -zcf mysql-lib-$date.tar.gz &>/dev/null rm -rf /tmp/dbbak/dbinfo.txt fi /var/lib/mysql dbinfo.txt

dbinfo.txt

11.5.1 Shell编程-流程控制-if语句

例子2:判断apache是否启动#!/bin/bash # Author: shenchao (E-mail: shenchao@http://) port=$(nmap -sT 192.168.1.156 | grep tcp | grep http | awk '{print $2}')#使用nmap命令扫描服务器,并截取apache服务的状态,赋予变量port

if [ "$port" == "open" ] then echo “$(date) httpd is ok!” >> /tmp/autostart-acc.log else /etc/rc.d/init.d/httpd start &>/dev/null echo "$(date) restart httpd !!" >> /tmp/autostart-err.log fi

11.5.1 Shell编程-流程控制-if语句

3、 多分支if条件语句if [ 条件判断式1 ] then 当条件判断式1成立时,执行程序1 elif [ 条件判断式2 ] then 当条件判断式2成立时,执行程序2 省略更多条件…

else 当所有条件都不成立时,最后执行此程序 fi

11.5.1 Shell编程-流程控制-if语句

#!/bin/bash#判断用户输入的是什么文件

# Author: shenchao (E-mail: shenchao@http://)read -p "Please input a filename: " file#接收键

盘的输入,并赋予变量file

if [ -z "$file" ]#判断file变量是否为空

then

echo "Error,please input a filename" exit 1

11.5.1 Shell编程-流程控制-if语句

elif [ ! -e "$file" ]#判断file的值是否存在

then echo "Your input is not a file!" exit 2 elif [ -f "$file" ]#判断file的值是否为普通文件

then echo "$file is a regulare file!" elif [ -d "$file" ]#判断file的值是否为目录文件

then echo "$file is a directory!" else echo "$file is an other file!"

fi

11.5.1 Shell编程-流程控制-if语句

…… 此处隐藏:630字,全部文档内容请下载后查看。喜欢就下载吧 ……
11.5.1 Shell编程-流程控制-if语句.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:19 元/月 原价:99元
    低至 0.1 元/份 每月下载300
    全站内容免费自由复制
    VIP包月下载
    特价:19 元/月 原价:99元
    低至 0.1 元/份 每月下载300
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)