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 是一个目录
原文地址:https://www.cnblogs.com/xuefy/p/10981964.html