免费注册 查看新帖 |

Chinaunix

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

shell 参数问题,linux,求助:(  关闭 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2002-07-24 17:04 |只看该作者 |倒序浏览
有程序aaaa 参数为 --add "aa bb"
现需要将所有参数用变量代替程序如下:
temp="--add \"aa bb\""
aaaa $temp
提示参数出错bb"
手工执行aaaa --add "aa bb" 可以
需要这么转换???

论坛徽章:
0
2 [报告]
发表于 2002-07-25 08:30 |只看该作者

shell 参数问题,linux,求助:(

[这个贴子最后由valentine在 2002/07/25 08:31am 编辑]

to houf2000:
很明显,你的程序aaaa需要两个参数,一个是--add($1) 一个是aa bb ($2)
因为aa bb中间含空格,shell会解释成两个参数,所以加""
而你使用替换的时候,shell对命令行的解释工作便只作了变量替换,你的程序便获得了
三个参数:--add($1) ,"aa ($2) ,bb"($3

个人认为,一个好的程序在考虑用户输入的时候,应该具体些.
比如说:考虑三个参数
     或考虑使用特殊字符间隔两个参数,如
   aaaa --add aa#bb

论坛徽章:
0
3 [报告]
发表于 2002-07-25 09:58 |只看该作者

shell 参数问题,linux,求助:(

非常感谢斑竹,可我的程序比较特殊,可能输入多组参数:例如&#59;
aaaa --add "aa bb" --add "cc dd" --add "ff"
因为参数不确定,总需要得到一个参数字符串,而对这个串进行
操作时就会出现斑竹所说的认为多参数的情况,用“ 的目的就是这个,
没有别的办法在参数中带有空格吗?望指教

论坛徽章:
0
4 [报告]
发表于 2002-07-25 10:27 |只看该作者

shell 参数问题,linux,求助:(

在参数间加空格是一个问题,而shell运行变量替代是另一个问题.
如果单纯是加空格,用" " 和\都可以.
而要让shell做完变量替换在做一次对""和\的处理便做不到了.
通常在其它情况下我们用eval,在这好像也不适用啊.

如果你有aaaa的源码,还是把它改了吧.在c里把#替换成空格不是很简单么?

论坛徽章:
0
5 [报告]
发表于 2002-07-25 11:37 |只看该作者

shell 参数问题,linux,求助:(

多谢斑竹,我明白了。

论坛徽章:
0
6 [报告]
发表于 2002-07-25 15:21 |只看该作者

shell 参数问题,linux,求助:(

You are welcome.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP