首页 新闻 会员 周边 捐助

关于bash中case的一点疑惑

0
悬赏园豆:20 [已解决问题] 解决于 2012-02-17 16:17

#!/bin/bash

echo "$basename $0"

case $1 in
"" ) echo "default";;
*[!0-9]* ) echo "non-numeric";;
* ) echo "numeric";;
esac

分支一无参数
分之二非数字
分子三是数字

问题:
[1]*[!0-9]* 为什么能表示非数字,不知*号在此代表什么意思,跟通配符,正则表达式有关吗?

李大嘴的主页 李大嘴 | 初学一级 | 园豆:187
提问于:2012-02-17 16:08
< >
分享
最佳答案
0
case 是按照通配符的方式匹配 (而不是正则表达式)。[!0-9] 匹配任何一个非0到9之间的字符。* 匹配任意字符串(包括空字符串)所以 *[!0-9]* 匹配任意一个字符串,只要这个字符串包含非0到9的字符。
李大嘴 | 初学一级 |园豆:187 | 2012-02-17 16:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册