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 
   
  
 输出
 
 
示例 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 语句的语法和用法。