最近在坛子里看到各位大大们以前的关于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) |