沈阳电脑维修网,沈阳上门维修电脑服务
当前位置: 主页 > 程序数据代码>shell脚本中的通配_程序数据_shell >

shell脚本中的通配_程序数据_shell

时间:2011-12-5来源:沈阳电脑维修网 作者: 吕先生:13889116605点击:
沈阳电脑维修,上门维修电脑
Bash本身没有正则表达式的功能.在脚本里,使用正则表达式的是命令和软件包--例如sed和awk--它们可以解释正则表达式.Bash所做的是展开文件名扩展--这就是所谓的通配(globbing)--但它不是使用标准的正则表达式.而是使用通配符.通配解释标准的通配符:*和?,方括号括起来的字符,还有其他的一些特殊的字符(比如说^用来表示取反匹配).然而通配机制的通配符有很大的局限性.包含有*号的字符串将不会匹配以点开头的文件,例如.bashrc. 另外,通配机制的?字符和正则表达式中表示的意思不一样. bash$ls-l total2 -rw-rw-r--   1bozo bozo        0Aug 618:42a.1 -rw-rw-r--   1bozo bozo        0Aug 618:42b.1 -rw-rw-r--   1bozo bozo        0Aug 618:42c.1 -rw-rw-r--   1bozo bozo      466Aug 617:48t2.sh -rw-rw-r--   1bozo bozo      758Jul3009:02test1.txt  bash$ls-lt?.sh -rw-rw-r--   1bozo bozo      466Aug 617:48t2.sh  bash$ls-l[ab]* -rw-rw-r--   1bozo bozo        0Aug 618:42a.1 -rw-rw-r--   1bozo bozo        0Aug 618:42b.1  bash$ls-l[a-c]* -rw-rw-r--   1bozo bozo        0Aug 618:42a.1 -rw-rw-r--   1bozo bozo        0Aug 618:42b.1 -rw-rw-r--   1bozo bozo        0Aug 618:42c.1  bash$ls-l[^ab]* -rw-rw-r--   1bozo bozo        0Aug 618:42c.1 -rw-rw-r--   1bozo bozo      466Aug 617:48t2.sh -rw-rw-r--   1bozo bozo      758Jul3009:02test1.txt  bash$ls-l{b*,c*,*est*} -rw-rw-r--   1bozo bozo        0Aug 618:42b.1 -rw-rw-r--   1bozo bozo        0Aug 618:42c.1 -rw-rw-r--   1bozo bozo      758Jul3009:02test1.txt        Bash会对命令行中没有引号引起来的字符尝试文件名扩展.echo命令可以印证这一点. bash$echo* a.1b.1c.1t2.shtest1.txt  bash$echot* t2.shtest1.txt         可以改变Bash对通配字符进行解释的行为.set-f命令可以禁止通配机制,并且shopt的选项nocaseglob和nullglob能改变通配的行为.
上一篇:受限shell(Restricted Shells)_程序数据_shell
下一篇:shell中的移植话题_程序数据_shell
查看[shell脚本中的通配_程序数据_shell ]所有评论
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:
推荐内容
关于我们 服务价格 联系我们 企业网站优化 沈阳网站建设 沈阳维修电脑