if [ 条件判断式 ] ; then
程序
fi
if [ 条件判断式 ]
then
程序
fi
if [ 条件判断式 ]
then
程序
else
程序
fi
if [ 条件判断式 ]
then
程序
elif [ 条件判断式 ]
then
程序
else
程序
fi
例子1:判断分区使用率,赋值=不能有空格。if后面有空格,分号;可以没有空格。elseif没有空格
#!/bin/bash
rate=$(df -h | grep "sda1" | awk '{print $5}' | cut -d "%" -f1)
echo $rate
if [ $rate -ge 80 ];then
echo "warning!"
fi
if [ $rate -le 80 ]; then
echo "sda1 is okay!"
fi
改为elseif
if [ $rate -ge 80 ];then
echo "warning!"
else
echo "sda1 is okay!"
fi
例子2:备份mysql数据库
注意: tar打包,要先cd进打包的目录。不要显示输出tar -xzf不用v,并且 &>/dev/null。
#/bin/bash
date=$(date +%Y%m%d%H%M%S)
size=$(du -sh /var/lib/mysql)
if [ ! -d /tmp/dbbakup ]
then
mkdir /tmp/dbbakup
else
echo "Date is: $date" >> /tmp/dbbakup/db.txt
echo "size is: $size" >> /tmp/dbbakup/db.txt
cd /tmp/dbbakup
tar -czf mysql-var-lib-$date.tar.gz /var/lib/mysql db.txt &>/dev/null
fi
例子3:检测服务端口是否工作。nmap扫描端口,需要安装,黑客帝国刷屏用的这个命令。
#!/bin/bash
port=$(nmap -sT 192.168.4.7 | grep tcp | grep ssh | awk '{print $2}')
if [ "$port" == "open" ]
then
echo "$(date) ssh is ok!" >> /tmp/testdir/port.log
else
service ssh start &>/dev/null
echo "$(date) ssh is restarting!" >> /tmp/testdir/port.log
fi
例子4: 检查用户输入的文件目录。发生错误一定要exit跳出,否则会继续向下执行命令。-z $file表示用户直接回车,没有输入。
#!/bin/bash
read -p "please input a filename: " file
if [ -z "$file" ]
then
echo "do not input null!"
exit 1
elif [ ! -e "$file" ]
then
echo "your input is not a file!"
exit 2
elif [ -f "$file" ]
then
echo "$file is a regular file!"
elif [ -d "$file" ]
then
echo "$file is a directory!"
fi
阅读(102) | 评论(0) | 转发(0) |