007-流程控制 if 语句
流程控制 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 是一个目录