运维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) ,YangGe.freedom@icloud.com
# ORGANIZATION:
# CREATED: 2023-8-29 09:11:20
# REVISION: --------
#
#
#
#
#
#====================================================================================================================
# 如果指定的命令行参数个数不为1 ,则打印脚本的使用方法信息并退出脚本的运行,退出状态码为1if [ $# -ne 1 ]
then
# 打印脚本的使用信息
echo "Uage: 'basename $0' number"
# 退出脚本,状态码为1
exit 1fi
# 将第一个命令行参数赋值给变量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 ]
thenecho "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..........