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



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

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

[运维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..........

相关推荐
楚枫默寒7 小时前
Linux 编辑文件后自动添加修改日期
linux·运维·bash
苦青藤7 小时前
从零搭建 WSUS 隔离网络:完整实战指南(内网离线补丁分发)
运维·windows·microsoft
2601_961194029 小时前
27考研刘晓艳单词pdf
linux·sql·ubuntu·华为·pdf·.net
2023自学中11 小时前
imx6ull 开发板 推流ov5640数据,虚拟机用 ffplay 拉流播放
linux·音视频·嵌入式·开发板
shandianchengzi11 小时前
【记录】Ghidra|Ubuntu 26.04 下 Ghidra 界面缩放完整指南
linux·ubuntu·逆向·ghidra
天天进步201511 小时前
Python全栈项目--Python自动化运维工具开发
运维·python·自动化
Soari11 小时前
Ubuntu 根分区文件系统损坏,系统启动时自动检查失败
linux·运维·ubuntu
杨云龙UP11 小时前
Oracle Health Check巡检脚本使用SOP V2.0:从HTML原始报告→生成Word专业巡检报告→交付客户_2026-06-03
linux·运维·数据库·sql·oracle·报告·巡检
广州灵眸科技有限公司11 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) Linux虚拟机准备
linux·运维·服务器
Lana学习中12 小时前
【运维杂记】连接不上远程服务器的问题处理
运维·服务器