分页: 1 / 2
参数传递走样?
发表于 : 2009-03-24 16:17
由 daf3707
没事来看看
假如目录里有aa、ab、ac
运行带"a*"参数的脚本
变量$1变成了aa
我本来要在脚本里接收这个"a*"的,现在变了。
如果目录里没有aa、ab、ac,参数就会被正确传递为"a*"
如何做,才能在即有匹配文件名的同时,又可正确传递这个参数呢。
等你啊
Re: 参数传递走样?
发表于 : 2009-03-24 16:44
由 greco
Re: 参数传递走样?
发表于 : 2009-03-24 16:49
由 greco
不过传带 * 的参数还是蛮奇怪的
如果你要 x*
你就传 x就好了
*的通配到shell脚本里面去加咯
Re: 参数传递走样?
发表于 : 2009-03-24 17:03
由 daf3707
greco 写了:不过传带 * 的参数还是蛮奇怪的
如果你要 x*
你就传 x就好了
*的通配到shell脚本里面去加咯
问题是客户如果输了*呢?而恰好目录下有匹配的文件名,它这样一自动区配,那就搞不明白到底是输入了什么东东了。
Re: 参数传递走样?
发表于 : 2009-03-24 17:20
由 BigSnake.NET
Re: 参数传递走样?
发表于 : 2009-03-24 17:21
由 daf3707
我怕用户懒,不愿意输入''
大蛇都没办法了,看来只能折中了?
Re: 参数传递走样?
发表于 : 2009-03-24 17:25
由 BigSnake.NET
daf3707 写了:
我怕用户懒,不愿意输入''
大蛇都没办法了,看来只能折中了?
这种事情是 diy 无法控制的, 至少在 bash 下, * 的展开是由 shell 进行的, diy 根本连 ab ac ad 是不是由 a* 展开得到的都不知道.
Re: 参数传递走样?
发表于 : 2009-03-24 17:28
由 daf3707
嗯,应该是这样的了,那就判断加''没加吧,不加的提示help
Re: 参数传递走样?
发表于 : 2009-03-24 23:12
由 aerofox
加上"后,"本身也不会传给diy。
在 bash 中可以控制,但不是在 diy 内部,在输入 ./diy a* 之前(比如在 ~/.bashrc中)执行过 set -o noglob 就不扩展了。
Re: 参数传递走样?
发表于 : 2009-03-25 9:01
由 daf3707
aerofox 写了:加上"后,"本身也不会传给diy。
在 bash 中可以控制,但不是在 diy 内部,在输入 ./diy a* 之前(比如在 ~/.bashrc中)执行过 set -o noglob 就不扩展了。
那它就整个的不扩展了,比如 ls ab*,即使有abc,他也提示 ab*找不到了,
还是多谢
Re: 参数传递走样?
发表于 : 2009-03-25 9:47
由 yjcong
为什么不把$1 换成$@ ???????????
Re: 参数传递走样?
发表于 : 2009-03-25 9:49
由 BigSnake.NET
daf3707 写了:aerofox 写了:加上"后,"本身也不会传给diy。
在 bash 中可以控制,但不是在 diy 内部,在输入 ./diy a* 之前(比如在 ~/.bashrc中)执行过 set -o noglob 就不扩展了。
那它就整个的不扩展了,比如 ls ab*,即使有abc,他也提示 ab*找不到了,
还是多谢
扩展了又说走样, 不扩展又说不扩展 =.= ..
Re: 参数传递走样?
发表于 : 2009-03-25 9:50
由 bones7456
Re: 参数传递走样?
发表于 : 2009-03-25 11:19
由 eexpress
传的时候,就老实的带上‘’
虽然bash可以设置不扩展参数,可估计你不会喜欢的。
Re: 参数传递走样?
发表于 : 2009-03-25 11:39
由 daf3707
不扩展确实不习惯
用$@比较接近了