自己写的用来解析命令参数的proc。
proc parse_args {argv {vname ""}} { upvar $vname opts set opts(%) [list] for {set i 0 ; set n [llength $argv] ; set cnt 0 ; set stop false} {$i<$n} {incr i} { set k [lindex $argv $i] if {!$stop && [regexp -- {^-\w+$} $k]} { if {[info exists opts($k)] && $opts($k)=="off"} { array set opts [list $k on] } else { set v [lindex $argv [incr i]] ; array set opts [list $k $v] } } elseif {$k == "--" } { set stop true } else { set stop true set v $k set k [format "%%%d" [incr cnt]] array set opts [list $k $v] lappend opts(%) $v } } return 1 } ### Demo Usage ### proc t {args} { array set {} { -list off -array off -size 0 } parse_args $args puts [array get {}] }