linux bash case,Bash case语句

本文介绍Bash脚本中的Case语句基础及其使用方法。Case语句类似于Switch语句,但更灵活,适用于多种模式匹配。文章通过示例展示了如何在Bash脚本中运用Case语句进行条件判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在本小节中,我们将讨论Bash case语句的基础以及如何在Bash脚本中使用。

Bash case语句是具有许多ELIF元素的IF-THEN-ELSE的最简单形式。使用case语句使bash脚本更具可读性,并且更易于维护。它通常用于简化具有多种不同选择的复杂条件。

Bash case语句遵循与Javascript或C语言中的switch语句类似的逻辑。但是又略有不同,如下所示:

Bash case语句只接受一次值,然后多次测试该值。一旦找到模式就执行与其链接的语句,它将停止搜索模式,这与C switch语句几乎相反。

case语句语法

bash case语句的语法如下:

case expression in

pattern_1)

statements

;;

pattern_2)

statements

;;

pattern_3|pattern_4|pattern_5)

statements

;;

pattern-n)

statements

;;

*)

statements

;;

esac

bash case语句的一些重要说明:

bash中的每个case语句均以case关键字开头,后接case表达式和in关键字。使用esac关键字关闭case语句。

可以应用以|分隔的多个模式运算符,运算符指示模式列表的终止。

包含语句的模式称为子句,并且必须以双分号(;;)终止。

星号(*)用作定义默认情况的最终模式。当用作最后一种情况时,它用作默认情况。

运作方式

首先,case语句扩展表达式并尝试与每个包含的模式匹配。找到匹配项后,将执行所有链接的语句,直到双分号(;;)为止。在第一个匹配项之后,case以最后执行的语句的退出状态终止。

如果没有匹配的模式,则case的退出状态为零。否则,返回状态是已执行语句的退出状态。

如果使用默认的星号(*)模式,则在没有匹配模式的情况下将执行它。

下面通过一些示例来了解这种机制:

示例1

在此示例中,定义了一个简单的场景来演示case语句的用法。

Bash脚本文件:case-demo1.sh -

#!/bin/bash

echo "Do you know Java Programming?"

read -p "Yes/No? :" Answer

case $Answer in

Yes|yes|y|Y)

echo "That's amazing."

echo

;;

No|no|N|n)

echo "It's easy. Let's start learning from yiibai.com."

;;

esac

执行上面示例代码,得到以下结果:

6bfd18e0a32e2892e7712fd698bebc51.png

示例2

在此示例中,定义了一个组合case,其中还存在一个默认情况,即前面找不到匹配的case。

Bash脚本文件:case-demo2.sh -

#!/bin/bash

echo "Which Operating System are you using?"

echo "Windows, Android, Chrome, Linux, Others?"

read -p "Type your OS Name:" OS

case $OS in

Windows|windows|window|win)

echo "That's common. You should try something new."

echo

;;

Android|android)

echo "This is my favorite. It has lots of applications."

echo

;;

Chrome|chrome)

echo "Cool!!! It's for pro users. Amazing Choice."

echo

;;

Linux|linux)

echo "You might be serious about security!!"

echo

;;

*)

echo "Sounds interesting. I will try that."

echo

;;

esac

执行上面示例代码,得到以下结果:

3769e2183802e779573ff3e89f1dcffb.png

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值