case 语句通常用于简化当存在多个不同选择时的复杂条件语句。使用 case 语句而不是嵌套的 if 语句将有助于使您的 Bash 脚本更易于阅读和维护。case 语句语法case 语句的语法由“case”关键字开始,后跟要匹配的值,然后是“in”关键字,以及一个或多个模式和相应的代码块,这些代码块用“;;”语句封闭:case EXPRESSION in
PATTERN_1)
STATEMENTS
;;
PATTERN_2)
STATEMENTS
;;
PATTERN_N)
STATEMENTS
;;
*)
STATEMENTS
;;
esaccase 语句以 case 关键字开始,后跟情况表达式和 in 关键字。语句以 esac 关键字结束。| 运算符分隔多个模式。) 运算符终止模式列表。;; 结束。*) 作为最终模式来定义默认情况。此模式将始终匹配。case 语句示例case 语句的示例,该脚本打印给定国家的官方语言:#!/bin/bash
echo -n "Enter the name of a country: "
read COUNTRY
echo -n "The official language of $COUNTRY is "
case $COUNTRY in
Lithuania)
echo -n "Lithuanian"
;;
Romania | Moldova)
echo -n "Romanian"
;;
Italy | "San Marino" | Switzerland | "Vatican City")
echo -n "Italian"
;;
*)
echo -n "unknown"
;;
esac保存自定义脚本为文件,并从命令行运行它。
bash languages.sh脚本将要求您输入一个国家。例如,如果您输入“Lithuania”,它将匹配第一个模式,并且该子句中的 echo 命令将被执行。脚本将打印以下输出:
Enter the name of a country: Lithuania
The official language of Lithuania is Lithuanian如果您输入一个不匹配任何其他模式的国家,除了默认的通配符星号符号,比如说阿根廷,脚本将执行默认子句中的 echo 命令。Enter the name of a country: Argentina
The official language of Argentina is unknowncase 语句可以在多种场景下使用,以下是一些常见的使用场景:case 来解析命令行参数,并根据参数执行不同的操作。例如,一个脚本可能接受 start、stop 和 restart 参数来管理服务。case 可以创建一个简单的文本菜单,用户可以从中选择不同的选项来执行不同的脚本功能。case 语句可以用于匹配配置选项并执行相应的代码块。.txt 文件使用文本编辑器打开,而 .jpg 文件使用图像查看器打开。case 来执行不同的错误处理逻辑。case 来决定是否需要安装额外的依赖。case 语句的灵活性和强大功能,它可以帮助编写更加清晰和易于维护的 Bash 脚本。