重击案声明
重击 case
当您有多种选择时,通常使用statement来简化复杂的条件。 使用 case
声明而不是嵌套 if
语句将帮助您使bash脚本更具可读性且易于维护。
重击 case
语句与Javascript或C具有相似的概念 switch
声明。 主要区别在于与C不同 switch
声明,重击 case
语句找到一个并执行与该模式关联的语句后,就不会继续搜索模式匹配。
在本教程中,我们将介绍Bash的基础知识 case
语句,并向您展示如何在Shell脚本中使用它。
case
语句语法#
重击 case
语句采用以下形式:
case EXPRESSION in
PATTERN_1)
STATEMENTS
;;
PATTERN_2)
STATEMENTS
;;
PATTERN_N)
STATEMENTS
;;
*)
STATEMENTS
;;
esac
- 每
case
语句以case
关键字,然后是case表达式和in
关键词。 该语句以esac
关键词。 - 您可以使用由
|
操作员。 的)
操作符终止模式列表。 - 模式可以具有特殊字符。
- 模式及其相关命令称为子句。
- 每个子句必须以
;;
。 - 执行与匹配表达式的第一个模式相对应的命令。
- 通常使用通配符星号(
*
)作为定义默认大小写的最终模式。 此模式将始终匹配。 - 如果没有匹配的模式,则返回状态为零。 否则,返回状态是已执行命令的退出状态。
案例陈述示例#
这是使用 case
bash脚本中的语句,该语句将打印给定国家/地区的官方语言:
language.sh
#!/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
该脚本将要求您输入一个国家。 例如,如果您输入“立陶宛”,它将与第一个模式匹配,并且 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
结论#
现在,您应该对如何编写bash有了很好的了解 case
陈述。 它们通常用于从命令行将参数传递给Shell脚本。 例如,初始化脚本正在使用 case
用于启动,停止或重新启动服务的语句。
如果您有任何疑问或反馈,请随时发表评论。
bash终端