狂欢case
当您有多个不同的选择时,语句通常用于简化复杂的条件。使用case
语句而不是嵌套if
语句将帮助您使 bash 脚本更具可读性且更易于维护。
狂欢case
语句与Javascript或C有类似的概念switch
陈述。主要区别在于,与 C 不同switch
声明,Bashcase
一旦找到并执行与该模式关联的语句,语句就不会继续搜索模式匹配。
在本教程中,我们将介绍 Bash 的基础知识case
语句并向您展示如何在 shell 脚本中使用它。
case
语句语法#
狂欢case
声明采用以下形式:
case EXPRESSION in
PATTERN_1)
STATEMENTS
;;
PATTERN_2)
STATEMENTS
;;
PATTERN_N)
STATEMENTS
;;
*)
STATEMENTS
;;
esac
- Each
case
声明以case
关键字,后跟 case 表达式和in
关键词。该声明以esac
关键词。
- 您可以使用由 分隔的多个模式
|
操作员。这)
运算符终止模式列表。
- 一个模式可以有特殊字符
.
- 模式及其关联命令称为子句。
- 每个子句必须以
;;
.
- 执行与表达式匹配的第一个模式对应的命令。
- 使用通配符星号是一种常见的做法(
*
)作为定义默认情况的最终模式。该模式将始终匹配。
- 如果没有模式匹配,则返回状态为零。否则,返回状态为退出状态已执行的命令。
案例陈述示例#
这是一个使用的示例case
bash 脚本中的语句将打印给定国家的官方语言:
语言.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
该脚本将要求您输入一个国家/地区。例如,如果您输入“Lithuania”,它将匹配第一个模式,然后echo
该子句中的命令将被执行。
该脚本将打印以下输出:
Enter the name of a country: Lithuania
The official language of Lithuania is Lithuanian
如果您输入的国家/地区与除默认通配符星号之外的任何其他模式都不匹配,例如阿根廷,脚本将执行回显命令在默认子句中。
Enter the name of a country: Argentina
The official language of Argentina is unknown
结论#
现在你应该已经很好地理解了如何编写 bashcase
声明。它们通常用于从命令行向 shell 脚本传递参数。例如,初始化脚本正在使用case
用于启动、停止或重新启动服务的语句。
如果您有任何问题或反馈,请随时发表评论。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)