0

附上我的代码。但是,当我执行它时,会出现此错误消息:第 11 行:意外标记 `}' 附近的语法错误

由于我是 tcl 的新手,我不知道哪里出了问题。请帮忙 !!!非常感谢

 set filename "a.qip"
 set temp [create_temp_file a.qip]
 set out [open $temp w]
 set in [open $filename r]
 set entityname "edward"

 while {[gets $in line] != -1} {
       if {[string match "*SDC_FILE*" $line]} {
        puts $out $line
        puts $out "set variant_name $entityname"
     } else {
          puts $out $line
     }
 }
    close $in
    close $out 

file link -hard $filename a.qip.bak
file rename -force $temp $filename
4

2 回答 2

6

您试图用来sh解释您的 Tcl 文件:

$ sh f.tcl
f.tcl: line 11: syntax error near unexpected token `}'
f.tcl: line 11: `     } else {'

你需要使用tclsh

$ tclsh f.tcl
invalid command name "create_temp_file"
    while executing
"create_temp_file a.qip"
    invoked from within
"set temp [create_temp_file a.qip]"
    (file "f.tcl" line 2)
于 2013-10-16T12:35:47.823 回答
0

如果您的文件 a.qip 包含特定字符,例如 curlies '{' 和 '}',则字符串匹配会误解它。

于 2013-10-16T16:34:29.930 回答