shell case 用正则
时间: 2024-02-08 19:14:57 浏览: 57
在shell中,可以使用case语句来匹配正则表达式,具体语法如下:
```
case "$var" in
pattern1) command1;;
pattern2) command2;;
pattern3) command3;;
*) default_command;;
esac
```
其中,pattern1、pattern2、pattern3等为正则表达式,$var为待匹配的变量,command1、command2、command3为与匹配的正则表达式对应的命令,default_command为默认命令(如果没有匹配到任何正则表达式时执行的命令)。
下面是一个示例代码,展示如何在case中使用正则表达式:
```
#!/bin/bash
read -p "请输入一个字符串:" str
case "$str" in
[a-z]*)
echo "输入的字符串以小写字母开头"
;;
[A-Z]*)
echo "输入的字符串以大写字母开头"
;;
[0-9]*)
echo "输入的字符串以数字开头"
;;
*)
echo "输入的字符串不符合规则"
;;
esac
```
在这个示例中,首先从用户输入中读取一个字符串,然后使用case语句来判断字符串的开头字符。如果字符串以小写字母开头,则输出"输入的字符串以小写字母开头";如果字符串以大写字母开头,则输出"输入的字符串以大写字母开头";如果字符串以数字开头,则输出"输入的字符串以数字开头";如果字符串不符合任何规则,则输出"输入的字符串不符合规则"。