格式: if list; then list; [ elif list; then list; ] ... [ else list; ] fi
单分支
#/bin/bash echo "hello world"
if 条件表达式; then 命令 fi示例:
#!/bin/bash N=10 if [ $N -gt 5 ]; then echo yes fi # bash test.sh yes双分支
if 条件表达式; then 命令 else 命令 fi示例1:
#!/bin/bash N=10 if [ $N -lt 5 ]; then echo yes else echo no fi # bash test.sh no示例 2: 判断 crond 进程是否运行
#!/bin/bash NAME=crond NUM=$(ps -ef |grep $NAME |grep -vc grep) if [ $NUM -eq 1 ]; then echo "$NAME running." else echo "$NAME is not running!" fi示例 3: 检查主机是否存活
#!/bin/bash if ping -c 1 192.168.1.1 >/dev/null; then echo "OK." else echo "NO!" fi
if 语句可以直接对命令状态进行判断,就省去了获取$?这一步!
多分支
if 条件表达式; then 命令 elif 条件表达式; then 命令 else 命令 fi当不确定条件符合哪一个时,就可以把已知条件判断写出来,做相应的处理。
示例1
#!/bin/bash N=$1 if [ $N -eq 3 ]; then echo "eq 3" elif [ $N -eq 5 ]; then echo "eq 5" elif [ $N -eq 8 ]; then echo "eq 8" else echo "no" fi
如果第一个条件符合就不再向下匹配。
示例 2:根据 Linux 不同发行版使用不同的命令安装软件
#!/bin/bash if [ -e /etc/redhat-release ]; then yum install wget -y elif [ $(cat /etc/issue |cut -d' ' -f1) == "Ubuntu" ]; then apt-get install wget -y else Operating system does not support. exit fi