免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7385 | 回复: 10
打印 上一主题 下一主题

[文本处理] shell的case分支语句无法处理正则表达式吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-06-27 12:58 |只看该作者 |倒序浏览
例子:test.sh 如下
case  $1 in
  “hello")
             echo "hello"
             ;;
   "[1-9]*")
             echo "number"
             ;;
esac

执行:
./test.sh 12  --无任何显示
执行:
./test.sh hello --显示“hello”

请教: 查了下case应该是支持正则表达式的,但是实测结果却是不可以,不知问题出在哪里?

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
2 [报告]
发表于 2013-06-27 13:15 |只看该作者
回复 1# samsun639


    把 "[0-9]*" 的引号去掉改成  [0-9]*

论坛徽章:
0
3 [报告]
发表于 2013-06-27 13:23 |只看该作者
回复 2# 关阴月飞

thanks, 刚刚发完帖子自己试了下也试出来了。  这个问题还是蛮奇葩的。


   

论坛徽章:
71
15-16赛季CBA联赛之同曦
日期:2018-08-23 15:41:42辰龙
日期:2014-08-15 09:07:43狮子座
日期:2014-06-03 13:55:33亥猪
日期:2014-06-02 11:17:08巨蟹座
日期:2014-05-06 10:02:03午马
日期:2014-05-04 08:18:27亥猪
日期:2014-04-29 11:11:32技术图书徽章
日期:2014-04-24 15:51:26技术图书徽章
日期:2014-04-17 11:01:53辰龙
日期:2014-04-15 12:45:46亥猪
日期:2014-04-11 09:06:23射手座
日期:2014-04-01 15:28:10
4 [报告]
发表于 2013-06-27 13:23 |只看该作者
本帖最后由 zhaopingzi 于 2013-06-27 13:24 编辑



  1. case  $1 in
  2.   “hello")
  3.              echo "hello"
  4.              ;;
  5.    [0-9]*)
  6.              echo "number"
  7.              ;;
  8. esac
复制代码

论坛徽章:
0
5 [报告]
发表于 2013-06-27 13:26 |只看该作者
回复 4# zhaopingzi


   thanks, 但是不知道为啥会这样,有点奇葩

论坛徽章:
71
15-16赛季CBA联赛之同曦
日期:2018-08-23 15:41:42辰龙
日期:2014-08-15 09:07:43狮子座
日期:2014-06-03 13:55:33亥猪
日期:2014-06-02 11:17:08巨蟹座
日期:2014-05-06 10:02:03午马
日期:2014-05-04 08:18:27亥猪
日期:2014-04-29 11:11:32技术图书徽章
日期:2014-04-24 15:51:26技术图书徽章
日期:2014-04-17 11:01:53辰龙
日期:2014-04-15 12:45:46亥猪
日期:2014-04-11 09:06:23射手座
日期:2014-04-01 15:28:10
6 [报告]
发表于 2013-06-27 13:28 |只看该作者
""住就变成字符串了

论坛徽章:
0
7 [报告]
发表于 2013-06-27 13:33 |只看该作者
回复 6# zhaopingzi


    明白了。看来“” 和 '' 之前还是没有弄明白异同点。。 thanks

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
8 [报告]
发表于 2013-06-27 15:10 |只看该作者
是正则么?看帮助不是这么说的:
       case word in [ [(] pattern [ | pattern ] ... ) list ;; ] ... esac
              A case command first expands word, and tries to match it against each pattern in turn,  using  the  same
              matching  rules  as  for  pathname expansion (see Pathname Expansion below).  The word is expanded using
              tilde expansion, parameter and variable expansion, arithmetic substitution, command  substitution,  pro-
              cess substitution and quote removal.  Each pattern examined is expanded using tilde expansion, parameter
              and variable expansion, arithmetic substitution, command substitution, and process substitution.  If the
              shell  option  nocasematch  is  enabled, the match is performed without regard to the case of alphabetic
              characters.  When a match is found, the corresponding list is executed.  After the first match, no  sub-
              sequent  matches  are  attempted.   The exit status is zero if no pattern matches.  Otherwise, it is the
              exit status of the last command executed in list.

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
9 [报告]
发表于 2013-06-27 16:37 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
10 [报告]
发表于 2013-06-27 16:55 |只看该作者
  1. [root@localhost tmp]# sh test.sh "[1-9]*"
  2. number
复制代码
number出来了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP