您的位置:

Linux运维工程师必会之Shell If条件语句

一、 IF条件语句概述

Shell脚本中的IF语句可以判断某个条件是否成立并根据条件判断的结果执行相应的命令。语法如下:

if condition 
then 
    command1 
elif condition2 
then 
    command2 
else 
    command3 
fi 

其中condition和condition2是条件判断语句,如果成立则执行command1或command2,否则执行command3。

下面是一个简单的例子,如果a等于b,则输出“a等于b”,否则输出“a不等于b”:

#!/bin/bash
a=10
b=10
if [ $a -eq $b ]
then
    echo "a等于b"
else
    echo "a不等于b"
fi

上述代码中,-eq是等于符号,如果两个数值相等则返回true,-ne、-lt、-gt等符号都是Shell中的常用符号。

二、IF条件语句使用技巧

1.在IF语句中可以加入循环,来判断表达式的真假,并根据结果执行不同的命令,下面代码表示如果目录不存在,就创建该目录:

#!/bin/bash
if [ ! -d "/tmp/runoob" ]
then
    mkdir /tmp/runoob
else
    echo "/tmp/runoob 目录已经存在"
fi

2.可以将多个条件判断组合在一起,使用如下格式:

if [ condition1 ] && [ condition2 ]
then
    command1
else
    command2
fi

上述代码表示如果condition1和condition2都成立,则执行command1,否则执行command2。

3.除了使用等于符号以外,还可以使用字符串比较的方法,如下:

if [ "$a" = "$b" ]
then 
    echo "$a = $b"
else 
    echo "$a != $b"
fi

上述代码中,= 表示字符串相等,!= 表示字符串不等。

三、IF条件语句高级使用

1.可以使用case语句代替IF语句,稍微简洁一些。示例代码如下:

#!/bin/bash
echo '输入 1 到 4 之间的数字:'
echo '你输入的数字为:'
read aNum
case $aNum in
    1)  echo '你选择了 1'
    ;;
    2)  echo '你选择了 2'
    ;;
    3)  echo '你选择了 3'
    ;;
    4)  echo '你选择了 4'
    ;;
    *)  echo '你没有输入 1 到 4 之间的数字'
    ;;
esac

上述代码中,根据用户输入的数字,通过case语句判断所选项,如果没有输入1到4之间的数字则输出错误提示。

2.可以使用IF语句代替嵌套,让代码看起来更清爽简洁。示例代码如下:

#!/bin/bash
a=10
b=20
if [ $a -eq $b ]
then
    echo "a 等于 b"
elif [ $a -gt $b ]
then
    echo "a 大于 b"
else
    echo "a 小于 b"
fi

上述代码中,第一个IF语句判断a是否等于b,如果不是,则进入第二个IF语句,判断a是否大于b,否则输出a小于b。

结语

通过学习Shell中的IF条件语句,我们可以编写出更加灵活、高效的脚本,提升我们的工作效率。同时,我们还可以深入研究其他Shell语法,不断挖掘其功能,为我们的工作带来更多便利。