case
语句通常用于简化当存在多个不同选择时的复杂条件语句。使用 case
语句而不是嵌套的 if
语句将有助于使您的 Bash 脚本更易于阅读和维护。case
语句语法case
语句的语法由“case
”关键字开始,后跟要匹配的值,然后是“in
”关键字,以及一个或多个模式和相应的代码块,这些代码块用“;;
”语句封闭:case EXPRESSION in
PATTERN_1)
STATEMENTS
;;
PATTERN_2)
STATEMENTS
;;
PATTERN_N)
STATEMENTS
;;
*)
STATEMENTS
;;
esac
case
语句以 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 unknown
case
语句可以在多种场景下使用,以下是一些常见的使用场景:case
来解析命令行参数,并根据参数执行不同的操作。例如,一个脚本可能接受 start
、stop
和 restart
参数来管理服务。case
可以创建一个简单的文本菜单,用户可以从中选择不同的选项来执行不同的脚本功能。case
语句可以用于匹配配置选项并执行相应的代码块。.txt
文件使用文本编辑器打开,而 .jpg
文件使用图像查看器打开。case
来执行不同的错误处理逻辑。case
来决定是否需要安装额外的依赖。case
语句的灵活性和强大功能,它可以帮助编写更加清晰和易于维护的 Bash 脚本。