[shell(5)| 青训营笔记]

72 阅读1分钟

判断语句

if…then形式

类似于C/C++中的if-else语句。

单层if

命令格式:

if condition
then
语句1
语句2
...
fi

示例:

a=3
b=4

if \[ "$a" -lt "$b" ] && \[ "$a" -gt 2 ]
then
    echo ${a}在范围内
fi

输出结果:

3在范围内

单层if-else

命令格式

if condition
then
语句1
语句2
...
else
语句1
语句2
...
fi

示例:

a=3
b=4

if ! \[ "$a" -lt "$b" ]
then
echo ${a}不小于${b}
else
echo ${a}小于${b}
fi

输出结果:

3小于4

多层if-elif-elif-else

命令格式

if condition
then
语句1
语句2
...
elif condition
then
语句1
语句2
...
elif condition
then
语句1
语句2
else
语句1
语句2
...
fi

示例:

a=4

if \[ $a -eq 1 ]
then
    echo ${a}等于1
elif \[ $a -eq 2 ]
then
    echo ${a}等于2
elif \[ $a -eq 3 ]
then
    echo ${a}等于3
else
echo 其他
fi

输出结果:

其他

case…esac形式

类似于C/C++中的switch语句。

命令格式

case \$变量名称 in
值1)
语句1
语句2
...
;;  # 类似于C/C++中的break
值2)
语句1
语句2
...
;;
\*)  # 类似于C/C++中的default
语句1
语句2
...
;;
esac

示例:

    a=4

    case $a in     
    1)
            echo ${a}等于1
    ;;\
    2\)
    echo ${a}等于2
            ;;     
    3)                                                
    echo ${a}等于3
    ;;\
    \*)
    echo 其他
    ;;\
    esac

输出结果:

其他