免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6399 | 回复: 12

关于* 星号自动匹配的问题 [复制链接]

论坛徽章:
0
发表于 2009-07-20 17:37 |显示全部楼层
我写了一个小程序
cat aa.sh
#!/bin/bash
find $1 -name $2


我在命令行里面运行./aa.sh /var/log *.log
这个时候传给$2的是当前目录下星号匹配到的一个.log文件,和我原本的意思差别很大 有什么办法可以让shell不自动替换吗?
用./aa.sh /var/log "*.log" 也还是不能解决问题

最后把程序改成
#!/bin/bash
find $1 -name "$2"

./aa.sh /var/log "*.log" 才成功。

想问问 高手这个*星号匹配有什么讲究没有  能不能屏蔽掉。
这里的原理是什么

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
发表于 2009-07-20 17:47 |显示全部楼层
shell 的 pathname 展开。

论坛徽章:
0
发表于 2009-07-20 18:37 |显示全部楼层
这个能说的详细一点吗??

论坛徽章:
0
发表于 2009-07-20 22:02 |显示全部楼层
没试过,一般来说,双引号会解释里面的变量,单引号里的会原样保留。你试试单引号

论坛徽章:
0
发表于 2009-07-21 12:04 |显示全部楼层
单引号好像也是不可以,不太明白里面的原理。
希望高手能够讲讲 。

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
发表于 2009-07-21 12:16 |显示全部楼层

回复 #5 gregorian 的帖子

单引号和双引号是不同的。

''(单引号)里面不进行参数展开,
" "(双引号)里面进行参数展开。

详情请参考shell手册。

论坛徽章:
0
发表于 2009-07-21 12:42 |显示全部楼层
但是我在写这个shell之前是可以的 就是不用任何参
文件内容如下
cat aa.sh
#!/bin/bash
find $1 -name $2
运行是不会报错的
./aa.sh /var/log *.log

但是我过了一段时间再去运行就出现错误。我感觉除了单引号 双引号,可能bash shell里面有其他的环境变量,可以让星号不自动扩展。

论坛徽章:
0
发表于 2009-07-22 15:26 |显示全部楼层
顶上去,有知道原理的吗?

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
发表于 2009-07-22 15:45 |显示全部楼层

回复 #8 gregorian 的帖子

当前没有*.log文件就可能(与shell设置有关)不会报错。

论坛徽章:
0
发表于 2009-07-22 16:25 |显示全部楼层
你说的太对了,可能就是当前目录里面没有*.log的文件,有了就自动匹配了。
知道问题在什么地方了。

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP