我是Perl和Tcl的新手。我正在尝试构建现有的Tcl代码来制作我自己的脚本。 问题是当我尝试使用和从我的tcl脚本中提取perl程序时,它会出现以下错误:
***invalid command name "*'"
while executing
"*' \
-close '*"
invoked from within
"set command "/usr/local/bin/perl /home/bin/perlscript \
-var SOURCE=$myings \
-var IN_LA..."***
我在tcl脚本中的代码如下所示:
set command "/usr/local/bin/perl /home/bin/perlscript \
-var SOURCE=$myings \
-var IN_LAYMAN=TRUE \
-open '[*' \
-close '*]' \
-open '[*' -close '*]' $mygsp -output run.file"
if { [ file exists $mygsp ] && [file exists $myings ] } {
if { [catch { open "|$command" } input] } {
putmsg "Please check the following errors: $::errorInfo"
} else {
putmsg " Either the $mygsp or $myings is missing. Please check before proceeding forward"
}
}
我怀疑使用'open'& amp; 'close'或'[*'spl charectors。你能帮忙吗?
答案 0 :(得分:2)
双引号分隔字符串中的所有'['字符都必须进行转义,否则TCL会尝试执行[...]块内的命令并将结果替换为字符串:
set command "/usr/local/bin/perl /home/bin/perlscript \
-var SOURCE=$myings \
-var IN_LAYMAN=TRUE \
-open '\[*' \
-close '*]' \
-open '\[*' -close '*]' $mygsp -output run.file"