有没有办法使用 getopts 将字符串作为开关?
我正在查看是否有一种方法可以让 getopts
处理带有字符串而不是字符的开关。
例如,我想提供如下内容:
script.ksh -file1 file1.txt -file2.txt
而不是:
script.ksh -f file1.txt -g file2.txt
Is this possible with unix getopts
?
I am seeing if there is a way for getopts
to handle switches with strings instead of characters.
For example, I would like to supply something like this:
script.ksh -file1 file1.txt -file2.txt
Instead of:
script.ksh -f file1.txt -g file2.txt
Is this possible with unix getopts
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不,
getopts
不可能做到这一点。您必须自己进行解析,例如使用case
开关:No, it's not possible with
getopts
. You must do your own parsing, e.g. with acase
switch:外部
getopt
(注意没有“s”)可以处理长选项,但它有其自身的缺点。来自 BashFAQ/035:
The external
getopt
(note no "s") can handle long options, but it has its own disadvantages.From BashFAQ/035: