有谁知道 tcl 可以轻松解析输入参数的标准包吗?或者准备好的程序? (我只有 3 个标志,但一般的标志更好)。
The 文档包括一个例子。这是一个简单的例子:
package require cmdline
set parameters {
{server.arg "" "Which server to search"}
{debug "Turn on debugging, default=off"}
}
set usage "- A simple script to demo cmdline parsing"
array set options [cmdline::getoptions ::argv $parameters $usage]
parray options
样本运行:
$ tclsh simple.tcl
options(debug) = 0
options(server) =
$ tclsh simple.tcl -server google.com
options(debug) = 0
options(server) = google.com
$ tclsh simple.tcl -server google.com -debug
options(debug) = 1
options(server) = google.com
$ tclsh simple.tcl -help
simple - A simple script to demo cmdline parsing
-server value Which server to search <>
-debug Turn on debugging, default=off
-help Print this message
-? Print this message
while executing
"error [usage $optlist $usage]"
(procedure "cmdline::getoptions" line 15)
invoked from within
"cmdline::getoptions ::argv $parameters $usage"
invoked from within
"array set options [cmdline::getoptions ::argv $parameters $usage]"
(file "simple.tcl" line 11)
讨论
- 与大多数 Linux 实用程序不同,TCL 使用单破折号而不是双破折号作为命令行选项
- 当标志以.arg,那么该标志期望后面有一个参数,例如在服务器.arg
- The debug标志不以.arg,因此它不需要任何参数
- The user defines the command-line parameters by a list of lists. Each sub-list contains 2 or 3 parts:
- 标志(例如debug)
- 默认值(例如 0),仅当参数带有参数时(标志以
.arg
).
- 以及帮助消息
- 调用使用/帮助
-help
or -?
但是,输出并不漂亮,请参阅最后一个示例运行。
更新:帮助/使用
我一直在考虑用户调用帮助时的消息输出(请参阅上面运行的最后一个示例)。为了解决这个问题,您需要自己捕获错误:
set usage "- A simple script to demo cmdline parsing"
if {[catch {array set options [cmdline::getoptions ::argv $parameters $usage]}]} {
puts [cmdline::usage $parameters $usage]
} else {
parray options
}
示例运行 2:
$ tclsh simple.tcl -?
simple - A simple script to demo cmdline parsing
-server value Which server to search <>
-debug Turn on debugging, default=off
-help Print this message
-? Print this message
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)