[运维Shell脚本小试牛刀(三)::$(cd $(dirname 0); pwd)命令详解](https://blog.csdn.net/u014635374/article/details/132579373 "运维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) ,YangGe.freedom@icloud.com
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) ,YangGe.freedom@icloud.com
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..........