Shell脚本 if语句

Shell 可以通过 if语句 进行流程控制。判断条件为真,则执行后面的语句,不为真则不执行。

1. if 语句格式

if condition
then
    command1 
    command2
    ...
    commandN 
fi

也可以写成一行(适用于终端命令提示符):

if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi

末尾的 fi 就是 if 倒过来拼写,后面还会遇到类似的。

2. if else 语句格式

if condition
then
    command1 
    command2
    ...
    commandN
else
    command
fi

3. if else-if else

if else-if else 语句格式

if condition1
then
    command1
elif condition2 
then 
    command2
else
    commandN
fi

以下实例判断两个变量是否相等:

Shell 实例

a=10 b=20 if [ $a == $b ] then    echo "a 等于 b" elif [ $a -gt $b ] then    echo "a 大于 b" elif [ $a -lt $b ] then    echo "a 小于 b" else    echo "没有符合的条件" fi

输出结果:

a 小于 b

if else 语句经常与 test 命令结合使用,如下所示:

实例

num1=$[2*3] num2=$[1+5] if test $[num1] -eq $[num2] then     echo '两个数字相等!' else     echo '两个数字不相等!' fi

输出结果:

两个数字相等!

下一章:Shell脚本 case语句

case ... esac 为多选择语句,与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构,每个 case 分支用右圆括号开始,用两个分号 ;; 表示 break,即执行结束,跳出整个 case ... esac 语句,esac(就是 case 反过来)作为结束标记。