欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

理解Linux编程基础:条件控制——if语句、case选择语句与for循环

最编程 2024-07-29 12:33:15
...

01、按照文件类型进行判断   =>

常用-d、-e、-f

两种格式:

test -e /root/install.log  =>   常用

[ -e /root/install.log ]  =>   两边空格必须有

例如:[ -d /root ] && echo "yes" || echo "no":判断该文件是否存在,并且是否为目录文件,是yes,不是no。

02、按照文件权限进行判断   =>

 

 

 03、两个文件之间比较

    

04、两个数之间的比较  =>

 

 

 05、单分支 if 条件语句

if [ 条件判断式 ];then   =>  条件判断两边空格不能省略

程序

fi

或者

if [ 条件判断式 ]

then

程序

fi

    例子:判断分区使用率

#!/bin/bash 

#统计根分区使用率

# Author :shencao(E-mail:15258090@qq.com) 

rect=$(df -h | grep /dev/sda5 | awk '{print $5}' | cut -d "%" -f1)
if [ $rect -ge 10 ]
then
echo "warning! /dev/sda5 is full!!"
fi

 06、多分支if语句

 

if [ 条件判断式 ];then   =>  条件判断两边空格不能省略

程序

fi

或者

if [ 条件判断式 ]

then

条件成立程序

else

条件不成立程序

fi

 例子:备份 mysql 数据库

#!/bin/bash 

#备份 mysql 数据库

# Author :shencao(E-mail:15258090@qq.com)

date=$(date +%y%m%d)
size=$(du -sh /etc)

if [ -d /tmp/dbback ]
then
echo "Date is : $date" > /tmp/dbback/db.txt
echo "Size is : $size" >> /tmp/dbback/db.txt
cd /tmp/dbback
tar -zcf etc_$date.tar.gz /etc db.txt $>/dev/null
rm -rf /tmp/dbback/db.txt
else
mkdir /tmp/dbback
echo "Date is : $date" > /tmp/dbback/db.txt
echo "Size is : $size" >> /tmp/dbback/db.txt
cd /tmp/dbback
tar -zcf etc_$date.tar.gz /etc db.txt $>/dev/null
rm -rf /tmp/dbback/db.txt
fi

   例子2:判断apache是否启动

#!/bin/bash

port=$(nmap -sT 192.168.3.207 | grep tcp | grep http | awk '{print $2}')

#使用nmap命令扫描服务器,并截取 apache 服务器的状态,赋予变量 port

if [ "$port" == "open" ]
then
echo "$(date) http is ok" >> /tmp/httpd_acc.log
else
/etc/rc.d/init.d/httpd restart &>/dev/null
echo "$(date) http is reboot!!" >> /tmp/httpd_err.log

fi

 07、多分支if条件语句

if [ 条件语句1 ]

 then

执行程序1

elif [ 条件语句2 ] 

then

执行程序2

 else

执行程序2 

 fi

 08、case语句

 

例子:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

推荐阅读