当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : 参数传递走样?
帖子发表于 : 2009-03-24 16:17 
头像

注册: 2007-06-13 15:57
帖子: 12567
地址: 在他乡
送出感谢: 50
接收感谢: 87
没事来看看
假如目录里有aa、ab、ac
运行带"a*"参数的脚本
代码:
 ./diy a*

变量$1变成了aa
我本来要在脚本里接收这个"a*"的,现在变了。 :em06
如果目录里没有aa、ab、ac,参数就会被正确传递为"a*"
如何做,才能在即有匹配文件名的同时,又可正确传递这个参数呢。

等你啊 :em11


最后由 daf3707 编辑于 2009-03-24 17:05,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 参数传递走样?
帖子发表于 : 2009-03-24 16:44 
头像

注册: 2007-04-06 10:24
帖子: 2487
地址: ~/Shanghai
送出感谢: 0 次
接收感谢: 0 次
好问题啊,以前都没有用通配符做过参数

附件:
1.JPG
1.JPG [ 25.63 KiB | 被浏览 370 次 ]



_________________
http://silenceisdefeat.com/~greco
代码:
''.join([chr(ord(c)-2) for c in 'O{"G/ockn"ku<"itgeq0ujkBiockn0eqo'])
echo -n "Z3JlY28uc2hpQGdtYWlsLmNvbQ==" | base64 -d


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 参数传递走样?
帖子发表于 : 2009-03-24 16:49 
头像

注册: 2007-04-06 10:24
帖子: 2487
地址: ~/Shanghai
送出感谢: 0 次
接收感谢: 0 次
不过传带 * 的参数还是蛮奇怪的

如果你要 x*

你就传 x就好了

*的通配到shell脚本里面去加咯


_________________
http://silenceisdefeat.com/~greco
代码:
''.join([chr(ord(c)-2) for c in 'O{"G/ockn"ku<"itgeq0ujkBiockn0eqo'])
echo -n "Z3JlY28uc2hpQGdtYWlsLmNvbQ==" | base64 -d


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 参数传递走样?
帖子发表于 : 2009-03-24 17:03 
头像

注册: 2007-06-13 15:57
帖子: 12567
地址: 在他乡
送出感谢: 50
接收感谢: 87
greco 写道:
不过传带 * 的参数还是蛮奇怪的

如果你要 x*

你就传 x就好了

*的通配到shell脚本里面去加咯

问题是客户如果输了*呢?而恰好目录下有匹配的文件名,它这样一自动区配,那就搞不明白到底是输入了什么东东了。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 参数传递走样?
帖子发表于 : 2009-03-24 17:20 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
代码:
./diy 'a*'


这样运行


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 参数传递走样?
帖子发表于 : 2009-03-24 17:21 
头像

注册: 2007-06-13 15:57
帖子: 12567
地址: 在他乡
送出感谢: 50
接收感谢: 87
BigSnake.NET 写道:
代码:
./diy 'a*'


这样运行

我怕用户懒,不愿意输入'' :em06
大蛇都没办法了,看来只能折中了? :em06


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 参数传递走样?
帖子发表于 : 2009-03-24 17:25 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
daf3707 写道:
BigSnake.NET 写道:
代码:
./diy 'a*'


这样运行

我怕用户懒,不愿意输入'' :em06
大蛇都没办法了,看来只能折中了? :em06


这种事情是 diy 无法控制的, 至少在 bash 下, * 的展开是由 shell 进行的, diy 根本连 ab ac ad 是不是由 a* 展开得到的都不知道.


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 参数传递走样?
帖子发表于 : 2009-03-24 17:28 
头像

注册: 2007-06-13 15:57
帖子: 12567
地址: 在他乡
送出感谢: 50
接收感谢: 87
嗯,应该是这样的了,那就判断加''没加吧,不加的提示help


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 参数传递走样?
帖子发表于 : 2009-03-24 23:12 

注册: 2008-05-24 8:30
帖子: 1453
送出感谢: 2
接收感谢: 30
加上"后,"本身也不会传给diy。
在 bash 中可以控制,但不是在 diy 内部,在输入 ./diy a* 之前(比如在 ~/.bashrc中)执行过 set -o noglob 就不扩展了。


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 参数传递走样?
帖子发表于 : 2009-03-25 9:01 
头像

注册: 2007-06-13 15:57
帖子: 12567
地址: 在他乡
送出感谢: 50
接收感谢: 87
aerofox 写道:
加上"后,"本身也不会传给diy。
在 bash 中可以控制,但不是在 diy 内部,在输入 ./diy a* 之前(比如在 ~/.bashrc中)执行过 set -o noglob 就不扩展了。

那它就整个的不扩展了,比如 ls ab*,即使有abc,他也提示 ab*找不到了, :em06
还是多谢 :em01


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 参数传递走样?
帖子发表于 : 2009-03-25 9:47 
头像

注册: 2006-02-28 3:11
帖子: 2470
送出感谢: 0 次
接收感谢: 0 次
为什么不把$1 换成$@ ???????????


_________________
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 参数传递走样?
帖子发表于 : 2009-03-25 9:49 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
daf3707 写道:
aerofox 写道:
加上"后,"本身也不会传给diy。
在 bash 中可以控制,但不是在 diy 内部,在输入 ./diy a* 之前(比如在 ~/.bashrc中)执行过 set -o noglob 就不扩展了。

那它就整个的不扩展了,比如 ls ab*,即使有abc,他也提示 ab*找不到了, :em06
还是多谢 :em01



扩展了又说走样, 不扩展又说不扩展 =.= ..


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
13 楼 
 文章标题 : Re: 参数传递走样?
帖子发表于 : 2009-03-25 9:50 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
:em04


_________________
关注我的blog: ε==3


页首
 用户资料  
 
14 楼 
 文章标题 : Re: 参数传递走样?
帖子发表于 : 2009-03-25 11:19 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
传的时候,就老实的带上‘’
虽然bash可以设置不扩展参数,可估计你不会喜欢的。


_________________
● 鸣学


页首
 用户资料  
 
15 楼 
 文章标题 : Re: 参数传递走样?
帖子发表于 : 2009-03-25 11:39 
头像

注册: 2007-06-13 15:57
帖子: 12567
地址: 在他乡
送出感谢: 50
接收感谢: 87
不扩展确实不习惯 :em06 用$@比较接近了 :em03


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译