如果你在shell带有好多个不一样的选择时,Bash case语句适用于简单繁琐的规范。运用case语句并非置入的if语句将使你使bash脚本更最易读,更容易维修保养。
Bash case语句与Javascript或C switch语句具有相仿这一概念。重要区别是,与C switch语句不一样,Bash case语句一旦找到一个并执行和本模式关系语句,就不会继续搜索模式匹配。
在教学中,我们在这里详解Bash案例语句基本知识,同时向大伙儿呈现如何在shell脚本中运用她们。
case句法
Bash case语句采用以下方法:
case EXPRESSION in
PATTERN_1)
STATEMENTS
;;
PATTERN_2)
STATEMENTS
;;
PATTERN_N)
STATEMENTS
;;
*)
STATEMENTS
;;
esac
- 每一个case语句都以
case
关键字脚后跟case表达式和关键字逐渐in
。该语句以esac
关键字结尾。 - 您可以使用由
|
运算符分隔的好多个模式。)
终止模式文件目录。 - 模式可以包含特殊字符。
- 模式及其相关命令称作子句。
- 每一个规范必须以
;;
结束。 - 推行与匹配表达式的第一模式相匹配命令。
- 一般做法就是使用通配符星号(
*
作为最终模式来定义默认情况。这种模式总是会匹配的。 - 如果没有匹配的模式,则返回状况为零。要不然,返回情况是开展的命令的退出状况。
case案例
以下需在bash脚本中运用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
结论
至今为止,您应该更好的了解如何编写bash case语句。她们通常用于从命令早已传送数据给shell脚本。例如,init脚本运用case语句来运作,停止或重启服务新项目。
如果您有任何问题或意见和建议,请随时。
如果你喜欢大伙儿的内容可以选择在下方二维码中捐赠大伙儿,或者点击广告提供支持,感谢你的支持
