免费注册 查看新帖 |

Chinaunix

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

关于命令行参数解析的问题求教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-02 14:18 |只看该作者 |倒序浏览
通常用getopts可以解析shell命令行参数
./1.sh -a abc -b def
abc和def两个参数都将被正确解析

但如果执行./1.sh -a abc tt  -b def ghi jk 用getopts 解析到-a选项时将只能得到参数abc, 而tt被丢失。
有什么别的方法能正确解析所有的命令行参数而又不改变用户以上输入形式么(包括用户输入时不添加“”)      谢谢

[ 本帖最后由 linuxsmth 于 2008-5-2 14:24 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-05-02 15:09 |只看该作者
echo $@
echo $*
要不自己从$0提取出来按你的逻辑处理参数

[ 本帖最后由 angeljyt 于 2008-5-2 15:10 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2008-05-02 15:14 |只看该作者
原帖由 angeljyt 于 2008-5-2 15:09 发表
echo $@
echo $*
要不自己从$0提取出来按你的逻辑处理参数



用$@会把-a -b这些东西也包含进去吧 我只想保留参数值而不包含选项 请问有没有比较好的办法

论坛徽章:
0
4 [报告]
发表于 2008-05-02 15:15 |只看该作者
原帖由 angeljyt 于 2008-5-2 15:09 发表
echo $@
echo $*
要不自己从$0提取出来按你的逻辑处理参数


自己按逻辑来处理也是一种方法  
先要把选项识别出来 还要将属于各选项对应的参数分别提取保存起来
就是不知道有没有更好的办法了

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
5 [报告]
发表于 2008-05-02 15:40 |只看该作者
-a "abc tt"

论坛徽章:
0
6 [报告]
发表于 2008-05-02 15:44 |只看该作者
原帖由 ly5066113 于 2008-5-2 15:40 发表
-a "abc tt"


呵呵 前面说了“不改变用户以上输入形式么(包括用户输入时不添加“”)”

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
7 [报告]
发表于 2008-05-02 20:16 |只看该作者
原帖由 linuxsmth 于 2008-5-2 15:14 发表



用$@会把-a -b这些东西也包含进去吧 我只想保留参数值而不包含选项 请问有没有比较好的办法

适合这个要求的命令是getopt而不是getopts
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP