Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1512481
  • 博文数量: 297
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 3082
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 11:36
文章分类

全部博文(297)

文章存档

2011年(1)

2009年(45)

2008年(67)

2007年(184)

我的朋友

分类: LINUX

2008-04-18 15:52:17

  最近在坛子里看到各位大大们以前的关于if正则表达式的帖子,精辟的很。决定记录下来
 
在shell的if判断中要想调用"正则表达式"一般方法不可取;
如:
  if [$n =~ 正则表达式 ]
  .....
 
其结果不能被识别,必须引用 "[[ ]]"模式.
如:
  [[ "$a" =~ '^[0-9]' ]]
 
另外也可以采用外部命令的模式实现
如:
  if echo "$var" | grep -q 'RE'
   then
    .....
   else
    .....
  fi
 
鄙人自己也实验了下;
如:
  read city
  if [[ "$city" =~ '^[A-Z]+$' ]]
   then
     .....
   else
     .....
  fi
 
读取city缩写,并全部由大写字母组成.
 
关于if是否支持"正则"的问题,几位大大在贴子中主要讨论的是bash版本号(似乎要>=3.0).
小弟的bash Version 为3.00.15(1)-release.
不知道是否有朋友在更低的版本上执行成功过.如果有,请回复本文章,注明实现方法.谢谢.
感谢CU的大大们 ^^
 
阅读(2573) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-05-31 13:36:05

我在3.2上试验过, if [[ $input_char =~ '[Qq]' ]] then echo "exit" exit fi 是可以的。