我有三个 TCL 脚本。由于特定的限制,我想排除其中之一。我已经编写了这段代码,但给了我错误。
tcl 脚本列表: /proj/titan_reva_sjc2/devel/I31000/ttn_pciess_reva_gls_sim/tbc/ip/scripts/../funcsim/tcl/assert_off.tcl /proj/titan_reva_sjc2/devel/I31000/ttn_pciess_reva_gls_sim/tbc/ip/scripts/../funcsim/tcl /tool_utils.tcl /proj/titan_reva_sjc2/devel/I31000/ttn_pciess_reva_gls_100_2MHz/tbc/ip/scripts/../funcsim/tcl/sync_flop_tchk_off.tcl
代码:
set src_tcl_files [glob -nocomplain $env(SIM_DIR)/../funcsim/tcl/*.tcl]
if {$env(SIM_GLS_TYPE) == gls} {
foreach {src_tcl_file} $src_tcl_files {
if {$env(SIM_GLS_TYPE) == gls} {
if{string match $src_tcl_files $env(SIM_DIR)/../funcsim/tcl/assert_off.tcl} {
file delete -nocomplain $env(SIM_DIR)/../funcsim/tcl/assert_off.tcl
}
}
puts "Loading $src_tcl_file -----"
source $src_tcl_file
}
但出现错误
xmsim: *E,TCLERR: invalid command name "if{0}".
while executing "if{[string match $src_tcl_files $env(SIM_DIR)/../funcsim/tcl/assert_off.tcl]} {
在 Tcl 中,您需要命令字与其参数之间有一个空格。 它是强制性的,是语言在基础层面上如何运作的一部分。这包括
if
及其测试表达式参数之间。