我想使用命令行參數將正則表達式列表傳遞到我的TCL腳本(當前使用TCL 8.4,但將在以後使用8.6)。現在,我的腳本有一個可選標誌,您可以將其設置爲-spec
,它的後面跟着正則表達式列表。 (而且它有一些其他可選的標誌也是如此。)TCL通過命令行傳遞正則表的列表
因此,這裏是諸如此類的事情,我希望能夠在命令行中執行:
>tclsh84 myscript.tcl /some/path -someflag somearg -spec "(f\d+)_ (m\d+)_"
,然後在我的劇本,我會有這樣的事情:
set spec [lindex $argv [expr {[lsearch $argv "-spec"] + 1}]]
foreach item $spec {
do some stuff
}
我有它的工作,除了我傳遞的正則表達式列表中的部分。上述方法不適用於傳遞正則表達式......但是,如果沒有引號,它就像兩個參數而不是一個參數,並且大括號似乎也不能正確工作。有更好的解決方案嗎? (我是一個新手...)
在此先感謝您的幫助!
有些事情可以做多一點整齊地從8.5起(8.4現在是真的很老),但那很有趣。 – 2013-04-06 11:59:34
非常感謝,我認爲這是一種比我更好的方法! – KaleidoEscape 2013-04-08 18:02:34