流程控制 if 语句
if [ 条件判断式 ] ; then
程序
fi
if [ 条件判断式 ]
then
程序
fi
脚本示例:
[root@zabbix lianxi]# cat 001.sh
#!/bin/bash
#rate=$(df -h | grep mapper | awk '{print $5}' | cut -d "%" -f 1)
rate=`df -h | grep mapper | awk '{print $5}' | cut -d "%" -f 1`
if [ $rate -ge 80 ] ; then
echo "根分区要满了"
fi
[root@zabbix lianxi]# cat 002.sh
#!/bin/bash
#备份mysql数据库.备份目录
#ntpdate asia.pool.ntp.org &> /dev/null
#同步系统时间
date=`date +%y%m%d`
size=`du -sh /etc`
mysql_back() {
echo "Date:$date" > /tmp/dbbak/dbinfo.txt
echo "Size:$size" >> /tmp/dbbak/dbinfo.txt
cd /tmp/dbbak
tar -zcf etc-$date.tar.gz /etc dbinfo.txt &> /dev/null
rm -rf /tmp/dbbak/dbinfo.txt
}
if [ -d /tmp/dbbak ] ; then
mysql_back
else
mkdir /tmp/dbbak
mysql_back
fi
[root@zabbix lianxi]# cat 003.sh
#!/bin/bash
#判断apache是否启动
port=`nmap -sT 192.168.12.174 | grep tcp | grep http | awk '{print $2}'`
if [ $port == "open" ] ; then
echo "`date` apache 正在运行" >> /tmp/autostart-acc.log
else
/usr/sbin/httpd -k start &> /dev/null
echo "`date` apache 已启动" >> /tmp/autostart-acc.log
fi
#!/bin/bash
read -p "请输入一个文件名:" file
if [ -z $file ] ; then
echo "错误,请输入一个文件名"
exit 1
elif [ ! -e $file ] ; then
echo "你输入的不是一个文件"
exit 2
elif [ -f $file ] ; then
echo "$file 是一个普通文件"
elif [ -d $file ] ; then
echo "$file 是一个目录"
else
echo "$file 是一个其它文件"
fi
[root@zabbix lianxi]# ./004.sh
请输入一个文件名:
错误,请输入一个文件名
[root@zabbix lianxi]# echo $?
1
[root@zabbix lianxi]# ./004.sh
请输入一个文件名:sadf
你输入的不是一个文件
[root@zabbix lianxi]# echo $?
2
[root@zabbix lianxi]# ./004.sh
请输入一个文件名:/root
/root 是一个目录