我想传递一个Argument(键值)并且键内部可能包含类似键(value1 value2 ...)和值可能再次为value1(data1 data2 data2)格式如下所示
proc find {args } {
array set opt {-find "" }
if {$opt(-find) == "?" } {
....
puts "list of search items like google, msn"
}
if {$opt(-find) == "google" } {
....
puts "...."
}
}
我正在尝试获取命令
find -find ? displayresults google, msn.... find -find google displayresults gmail.... find -find google gmail results username pw ... find -find google gmail pw displayresults ....
答案 0 :(得分:0)
你想要的是cmdline
包裹。这是一个让你入门的小样本。
package require cmdline
proc find {args} {
set flags {
{server.arg "" "Which server to search"}
}
array set options [cmdline::getoptions args $flags]
if {$options(server) eq "google"} {
puts "Search Google"
} elseif {$options(server) eq "?"} {
puts "Display Help"
}
}
# Example usages
find -server google one two three ;# Case 1: $options(server)=="google"
find -server ? ;# Case 2: display help
find ;# Case 3: no -server flag
find -server "google msn" one two ;# Case 3: $options(server)=="google msn"
-server
而不是-find
,我认为这更有意义。-server
标志,则$ options(服务器)为空字符串""
。