Bash教程

Bash case

Bash case

在本主题中,我们将讨论 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' 关键字。 case 语句由 'esac' 关键字结束。 我们可以应用多个由 | 分隔的模式操作员。 ) 运算符表示模式列表的终止。 包含语句的模式称为子句,它必须以双分号(;;) 结尾。 星号(*) 用作定义默认情况的最终模式。当用作最后一种情况时,它用作默认情况。

它是如何工作的

首先,case 语句扩展表达式并尝试匹配每个包含的模式。当它找到匹配项时,将执行所有链接的语句,直到出现双分号(;;)。第一次匹配后,case 以最后执行的语句的退出状态终止。
如果没有匹配的模式,则 case 的退出状态为零。否则,返回状态为已执行语句的退出状态。
如果使用默认星号模式,则在没有匹配模式的情况下执行。
让我们尝试借助几个例子来理解这个机制:

例子1

在这个例子中,我们定义了一个简单的场景来演示case语句的使用.
Bash 脚本
#!/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 lidihuo."
        ;;
esac
输出
Bash Case

示例 2

在此示例中,我们定义了一个组合场景,其中还有一个默认情况,即未找到先前匹配的案例。
Bash 脚本
#!/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)
        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
输出
我们已经用三个不同的输入运行了脚本,请查看下面的输出:
Bash Case

结论

在本主题中,我们通过示例了解了 Bash Case 语句的语法和用法。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4