LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1135|回复: 7

关于bash角本:这样匹配字符串,怎么会匹配失败呢

[复制链接]
发表于 2005-4-18 17:19:26 | 显示全部楼层 |阅读模式
想用“.*”来匹配./ 或者 ../
if [ "$1" = “.*” ];then ##given path like ./ or ../
想用"$i"="*.EXE;*" -o "$i"="*.OBJ;*" -o "$i"="*.MAP;*" -o "$i"="*.LIS;*"   -o "$i"="MAKEFILE*"  来匹配类似的:q.EXE;11 hello.OBJ;84 su.LIS;89 这样的文件名
if [ "$i"="*.EXE;*" -o "$i"="*.OBJ;*" -o "$i"="*.MAP;*" -o "$i"="*.LIS;*"   -o "$i"="MAKEFILE*" ] ; then  ##Delete file like that kind .
if [ "$i"="*.EXE\;*" -o "$i"="*.OBJ\;*" -o "$i"="*.MAP\;*" -o "$i"="*.LIS\;*"  
-o "$i"="MAKEFILE*" ] ; then  ##Delete file like that kind .

唉,哪怕能匹配上含有;号的文件名也好呀
elif [ "$i"="*\;*" ];then
## file has unstandard name,rename it to confirm the rule

以上匹配均失败,查了半天的资料还是没有找到原因,哪位高手指点一下吧

另附源程序:myScript.sh(.rar)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2005-4-28 05:21:33 | 显示全部楼层
上面的匹配用regex就简单了。比如:/^\.\+\//, /^\.\/$/都可以匹配./ and ../, /\;/可以匹配有;的文件名。
回复 支持 反对

使用道具 举报

发表于 2005-4-28 12:24:37 | 显示全部楼层
Intel 3.4G/E, 2G DDR2, HD 800G, OS: SuSE9.2. VMware Guest: Mandrake10.1, FC3, RHEL4, RHEL3 WS, Gentoo, Ubuntu, Sun10, Feather, DSL, KNOPPIX, SLES9, SLAX, Gnoppix.
Lot fun...
No monitor

我的ID怎么到你的签名里啦 :ask
回复 支持 反对

使用道具 举报

发表于 2005-4-29 10:44:03 | 显示全部楼层
Post by DSL
我的ID怎么到你的签名里啦 :ask


那是因为你的ID正好和一款非常出名的mini Linux distro同名。 DSL - Damn Small Linux. 试试吧,做的非常不错。整个50MB左右的一个Linux.
回复 支持 反对

使用道具 举报

发表于 2005-5-1 18:02:05 | 显示全部楼层
Post by yongjian
那是因为你的ID正好和一款非常出名的mini Linux distro同名。 DSL - Damn Small Linux. 试试吧,做的非常不错。整个50MB左右的一个Linux.

我真荣幸呀! 你说的这个我听说过,没用过!
回复 支持 反对

使用道具 举报

发表于 2005-5-1 18:04:34 | 显示全部楼层
Post by DSL
我真荣幸呀! 你说的这个我听说过,没用过!

我一直以为是D(大)S(色)L(狼)的意思 :%  
回复 支持 反对

使用道具 举报

发表于 2005-5-1 18:11:39 | 显示全部楼层
Post by Freebird
我一直以为是D(大)S(色)L(狼)的意思 :%  

PFPF~~~, FB一下就猜到我的ID的含义啦
回复 支持 反对

使用道具 举报

发表于 2005-5-11 09:54:59 | 显示全部楼层
q.EXE;11 hello.OBJ;84 su.LIS;89 这样的文件名

.*\.EXE
.*\.OBJ
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表