如何从 CliBuilder 获取非选项参数?
How do I get the non-option arguments from the CliBuilder?
我有有史以来最简单的 groovy 脚本试图找出 CliBuilder。如何让 CliBuilder 为我提供超出选项的命令行参数?我的期望是像...
这样的命令行调用
./hello.groovy -u robert Edward
...会产生如下输出...
ROBERT EDWARD
来自我的来源,例如...
#!/usr/bin/env groovy
cli = new CliBuilder(usage:'hello.groovy [-hu] [name ...]')
cli.with {
h longOpt: 'help', 'Show usage information'
u longOpt: 'upper', 'uppercase eachg name'
}
options = cli.parse(args)
if(!options) {
throw new IllegalStateException("WTF?!?")
}
if(options.h || options.arguments().isEmpty()) {
cli.usage()
return
}
println("$options.arguments()");
..但我不知道如何获得其余的参数,那些超出选项的参数。
如果 -u
只是一个标志,则不需要 -2
:
#!/usr/bin/env groovy
cli = new CliBuilder(usage:'hello.groovy [-hu] [name ...]')
cli.with {
h longOpt: 'help', 'Show usage information'
u longOpt: 'upper', 'uppercase eachg name'
}
options = cli.parse(args)
if(!options) {
throw new IllegalStateException("WTF?!?")
}
if(options.h || options.arguments().isEmpty()) {
cli.usage()
return
}
if(options.u) {
options.arguments().each { println it.toUpperCase() }
}
else {
options.arguments().each { println it }
}
我有有史以来最简单的 groovy 脚本试图找出 CliBuilder。如何让 CliBuilder 为我提供超出选项的命令行参数?我的期望是像...
这样的命令行调用./hello.groovy -u robert Edward
...会产生如下输出...
ROBERT EDWARD
来自我的来源,例如...
#!/usr/bin/env groovy
cli = new CliBuilder(usage:'hello.groovy [-hu] [name ...]')
cli.with {
h longOpt: 'help', 'Show usage information'
u longOpt: 'upper', 'uppercase eachg name'
}
options = cli.parse(args)
if(!options) {
throw new IllegalStateException("WTF?!?")
}
if(options.h || options.arguments().isEmpty()) {
cli.usage()
return
}
println("$options.arguments()");
..但我不知道如何获得其余的参数,那些超出选项的参数。
如果 -u
只是一个标志,则不需要 -2
:
#!/usr/bin/env groovy
cli = new CliBuilder(usage:'hello.groovy [-hu] [name ...]')
cli.with {
h longOpt: 'help', 'Show usage information'
u longOpt: 'upper', 'uppercase eachg name'
}
options = cli.parse(args)
if(!options) {
throw new IllegalStateException("WTF?!?")
}
if(options.h || options.arguments().isEmpty()) {
cli.usage()
return
}
if(options.u) {
options.arguments().each { println it.toUpperCase() }
}
else {
options.arguments().each { println it }
}