LoveUnix » 编程开发 & Rational » shell能够处理处理长参数吗?
让LU留住您的每

一天 让LU博客留住您的每一天
2005-5-26 22:44 pkar
使用She l l 编程,要求命令行的格式能够支持长参数的形式,需要如何才能做到?<br /><br />如下<br />command -a|--append file -s|--source sorurcefile<br /><br />使用getopts可以方便的支持 -a 这样的短参数<br />可是如果要同时支持--append这样的长参数似乎有点麻烦,<br />不知哪位有过这样的经验,麻烦指点一下<br /><br />小弟在这里先行谢谢了.

2005-5-27 14:09 无双
getopt好像都可以吧<br /><br />在perl下有两个getopt库 一个是可以支持长选项的<br /><br />shell没试过

2005-5-27 14:09 无双
也可以自己判断 argv 的值 <br />

2005-5-27 14:40 foruok
用$@(或$#)把参数字符串取过来,赋值给一个变量,然后用cut(指定域分隔符为|)把各个命令摘出来,然后再做处理,依次执行命令。<br /><br />不知道这样可以不?

2005-5-28 00:17 pkar
<!--QuoteBegin-无双+2005-05-27 14:09:30--><div class='quotetop'>QUOTE(无双 @ 2005-05-27 14:09:30)</div><div class='quotemain'><!--QuoteEBegin-->也可以自己判断 argv 的值<br />[right][snapback]466198[/snapback][/right]<br /><!--QuoteEnd--></div><!--QuoteEEnd--><br /><br />可以再说的具体一点吗?

2005-5-28 00:22 pkar
<!--QuoteBegin-foruok+2005-05-27 14:40:44--><div class='quotetop'>QUOTE(foruok @ 2005-05-27 14:40:44)</div><div class='quotemain'><!--QuoteEBegin-->用$@(或$#)把参数字符串取过来,赋值给一个变量,然后用cut(指定域分隔符为|)把各个命令摘出来,然后再做处理,依次执行命令。<br /><br />不知道这样可以不?<br />[right][snapback]466204[/snapback][/right]<br /><!--QuoteEnd--></div><!--QuoteEEnd--><br />你可能没有理解我的意思.<br />command -a|--append file -s|--source sorurcefile<br />并不是一条命令,我是想说file参数即可以用-a来指定,也可以用--append来指定.如下<br />command -a file -s sourcefile<br />或者<br />command --append --s sourcefile<br /><br />上面的两种形式可以达到同样的效果.<br /><br /><br /><br />

2005-5-30 18:31 无双
最笨的办法是自己判断argv了<br /><br />也就是自己写一个getopt实现<br /><br />

2005-6-5 16:06 pkar
<!--QuoteBegin-无双+2005-05-30 18:31:07--><div class='quotetop'>QUOTE(无双 @ 2005-05-30 18:31:07)</div><div class='quotemain'><!--QuoteEBegin-->最笨的办法是自己判断argv了<br /><br />也就是自己写一个getopt实现<br />[right][snapback]467024[/snapback][/right]<br /><!--QuoteEnd--></div><!--QuoteEEnd--><br /><br />不是太值当的<!--emo&:)--><img src='style_emoticons/default/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo--><br /><br />早知道当初就不设计成支持长参数了.<!--emo&:(--><img src='style_emoticons/default/sad.gif' border='0' style='vertical-align:middle' alt='sad.gif' /><!--endemo--><br />

2005-6-8 21:55 pkar
getopt可以<br />刚刚发现

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.