免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 5682 | 回复: 27
打印 上一主题 下一主题

请教一个命令行参数传递的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-09 17:04 |只看该作者 |倒序浏览
小弟碰到一个问题, 是关于unix环境下命令行参数传递的,表现为若参数中含有'或者",则这些引号将不被传递。

例如: $a.pl a b 'c' "d"
则系统认为输入的参数字符串为:  a b c d.  (而不是a b 'c' "d")

我实现的代码如下:

sub GetARGV{
        $CMD = "";
        foreach $Key(@ARGV) {
                $CMD = $CMD . "$Key ";
        }
        return $CMD;
}

分析了一下,似乎ARGV中将他们吞掉了,不知是否如此。

请各位高手不吝赐教,多谢多谢!!!

论坛徽章:
0
2 [报告]
发表于 2006-10-09 17:26 |只看该作者
是shell把它们“吞”了

你可以这样:
$a.pl a b \'c\' \"d\"

论坛徽章:
0
3 [报告]
发表于 2006-10-09 17:31 |只看该作者
shucho 兄果然厉害!

不过可惜还不能完全解决这个问题......是这样的,
小弟改写了一个叫做cleartool 的程序, 这种改写希望是透明的, 用户无法识别的。 所以不可能告诉用户您不可以使用’了,必须使用”\'"。。。。。。

不知道那位有类似经验,谢谢!

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2006-10-09 17:33 |只看该作者
改 shell

BTW:你在水木上都问了好几天了,既然未果,那么是不是得换个问法呢?
唉~

论坛徽章:
0
5 [报告]
发表于 2006-10-09 17:38 |只看该作者
说不定可以设置shell的quote char,我只是猜想,具体看你的shell手册

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2006-10-09 17:51 |只看该作者
怀疑楼主是此人:
http://www.newsmth.net/bbscon.php?bid=226&id=31925

[ 本帖最后由 flw 于 2006-10-9 17:53 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2006-10-09 17:56 |只看该作者
原帖由 flw 于 2006-10-9 17:51 发表
怀疑楼主是此人:
http://www.newsmth.net/bbscon.php?bid=226&id=31925


那楼主不就是要做个shell么?晕倒

论坛徽章:
0
8 [报告]
发表于 2006-10-10 11:07 |只看该作者

不好意思,不好意思, 俺还真的就不是这位......
不过看起来我跟他的需求本质上是一样的,就是希望能够原封不动的传递参数给一些不同的程序进行处理。

现在我的问题是,我的用户的shell种类很多, sh, ksh, csh, bash, tcsh。。。。。他们可能在任何shell中调用cleartool,可是我希望这次对cleartool的"加套"是透明的,用户可以完全按照其以前的命令方式运行....

其实这样的需求应该很多呀....不知道各位大大有没有类似经验呢?

论坛徽章:
0
9 [报告]
发表于 2006-10-10 11:29 |只看该作者
楼主是南京的啊 我也在南京.

论坛徽章:
0
10 [报告]
发表于 2006-10-10 13:10 |只看该作者
呵呵,^_^
太好了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP