运维Shell脚本小试牛刀(四): 多层嵌套if...elif...elif....else fi

运维Shell脚本小试牛刀(四): 多层嵌套if...elif...elif....else fi_第1张图片



运维Shell脚本小试牛刀(一)

运维Shell脚本小试牛刀(二)

运维Shell脚本小试牛刀(三)::$(cd $(dirname $0); pwd)命令详解

运维Shell脚本小试牛刀(四): 多层嵌套if...elif...elif....else fi_蜗牛杨哥的博客-CSDN博客


 一: if...elif...elif..else fi多层嵌套

[root@www dicfor]# cat compareNumbers.sh 
#!/bin/bash -
#==================================================================================================================
#
#
#                           FILE:  compareNumbers.sh
#                           USAGE: ./compareNumbers.sh
#    DESCRIPTION: 演示逻辑与 && 和 逻辑或 || 
#        OPTIONS: -------
#        REQUIREMENTS: ---------

#        BUGS: ------
#        NOTES: -------- 
#        AUTHOR: ---------YangGe (TOM) ,[email protected]
#    ORGANIZATION:
#        CREATED: 2023-8-29 09:11:20    
#        REVISION: --------
#
#
#
#
#
#====================================================================================================================
# 如果指定的命令行参数个数不为1 ,则打印脚本的使用方法信息并退出脚本的运行,退出状态码为1

if [ $# -ne 1 ]
then
   
   # 打印脚本的使用信息
   echo "Uage: 'basename $0' number"
   # 退出脚本,状态码为1
   exit 1

fi

# 将第一个命令行参数赋值给变量num
num=$1

# 如果$num值大于90 且小于100,则执行if语句的内容,否则执行elif的语句
if [ "$num" -ge 90 ] && [ $num -le 100 ]
then
   # 打印Excellent
   echo "Excellent......................!"
# 如果$num的值大于80 且小于 90, 则执行次elif语句中的内容, 否则执行下面的elif语句
elif [ $num -ge 80 ] && [ $num -lt 90 ]
then
   # 打印Good...
   echo "Good !............................................"
#如果大于等于60且小于80,则执行elif语句中的内容,否则执行下面的elif语句块,
elif [ $num -ge 60 ] && [ ${num} -lt 80 ]
then
   # 打印"Pass mark!"
   echo "Pass mark!......................................"
elif [ $num -lt 60 ] && [ $num -ge 0 ]
then
   # 打印“Fail !”
   echo "Fail!............................................"
# 如果上面的if条件和elif 条件语句都没有执行,则执行次else语句块
else
   # 打印  "Wrong number........"
   echo "Wrong number......................................"
fi


测试输出:

[root@www dicfor]# ./compareNumbers.sh 2
Fail!............................................
[root@www dicfor]# ./compareNumbers.sh 2  334
Uage: 'basename ./compareNumbers.sh' number
[root@www dicfor]# ./compareNumbers.sh 2  100
Uage: 'basename ./compareNumbers.sh' number
[root@www dicfor]# ./compareNumbers.sh 2  90
Uage: 'basename ./compareNumbers.sh' number
[root@www dicfor]# ./compareNumbers.sh 90
Excellent......................!
 

二:  if...elif...elif..else fi多层嵌套|逻辑与融合

#!/bin/bash -
#==================================================================================================================
#
#
#                           FILE:  checknumber.sh
#                           USAGE: ./checknumber.sh
#    DESCRIPTION:
#        OPTIONS: -------
#        REQUIREMENTS: ---------

#        BUGS: ------
#        NOTES: -------- 
#        AUTHOR: ---------YangGe (TOM) ,[email protected]
#    ORGANIZATION:
#        CREATED: 2023-8-24 09:11:20    
#        REVISION: --------
#
#
#
#
#
#====================================================================================================================

# 如果指定的命令行参数个数等于0,则显示必须指定一个参数的提示信息,然后退出脚本,退出状态码为1
if [ $# -eq 0 ]
then
    # 显示必须输入一个参数的提示信息
    echo "$0 : You must give/supply one integers...."
    # 退出脚本,退出状态码为1 
    exit 1;
fi

# 如果指定的参数大于0
if [ $1 -gt 0 ]
then
 
    echo "The number is positive........"

# 如果指定的参数小于0
elif [ $1 -lt 0 ]
then

    echo "The number is negative........"

# 如果指定的参数等于0
elif [ $1 -eq 0 ]
then
    echo "The number is zero............"

else
    echo "Opps! $1 is not number,please enter a number..."
fi
 


测试输出:

[root@www dicfor]# ./checknumber.sh hhd
./checknumber.sh: 第 34 行:[: hhd: 期待整数表达式
./checknumber.sh: 第 40 行:[: hhd: 期待整数表达式
./checknumber.sh: 第 46 行:[: hhd: 期待整数表达式
Opps! hhd is not number,please enter a number...
[root@www dicfor]# ./checknumber.sh 2
The number is positive........
[root@www dicfor]# ./checknumber.sh -1111111111111
The number is negative........
[root@www dicfor]# ./checknumber.sh 0
The number is zero..........

你可能感兴趣的:(运维,linux,服务器)