如何在 TCL 脚本中执行多行发送命令?
How to execute multiline send command in TCL script?
我是 TCL 脚本的新手,正在尝试使用 spawn 和 send 命令在另一个应用程序中执行以下命令。但是出现以下错误:
proc otn_line_alarm {} {
send "table foreach $globalTable row columnName counterValue {
if {$columnName== "LOS" && $counterValue != "clear"} {return 0} } \r ";
return 1
}
下面是我遇到的错误
show otn line alarm 9
extra characters after close-quote
while executing
"exp_send "table foreach $globalTable row columnName counterValue {
if {$columnName== "LOS" && $counterValue != "clear"} {return 0}
} \r ";
r..."
您似乎想将文字字符串发送到生成的命令。在这种情况下,您可以将其括在大括号中而不是双引号中。唯一的问题是 \r 也没有被解释。最简单的解决方案是在单独的命令中发送:
proc otn_line_alarm {} {
send {table foreach $globalTable row columnName counterValue {
if {$columnName== "LOS" && $counterValue != "clear"} {return 0}
}}
send "\r"
return 1
}
如果您确实需要替换一些变量,我会使用格式命令:
proc otn_line_alarm {} {
send [format {table foreach %s row columnName counterValue {
if {$columnName== "LOS" && $counterValue != "clear"} {return 0}
}} $globalTable]
send "\r"
return 1
}
我是 TCL 脚本的新手,正在尝试使用 spawn 和 send 命令在另一个应用程序中执行以下命令。但是出现以下错误:
proc otn_line_alarm {} {
send "table foreach $globalTable row columnName counterValue {
if {$columnName== "LOS" && $counterValue != "clear"} {return 0} } \r ";
return 1
}
下面是我遇到的错误
show otn line alarm 9
extra characters after close-quote
while executing
"exp_send "table foreach $globalTable row columnName counterValue {
if {$columnName== "LOS" && $counterValue != "clear"} {return 0}
} \r ";
r..."
您似乎想将文字字符串发送到生成的命令。在这种情况下,您可以将其括在大括号中而不是双引号中。唯一的问题是 \r 也没有被解释。最简单的解决方案是在单独的命令中发送:
proc otn_line_alarm {} {
send {table foreach $globalTable row columnName counterValue {
if {$columnName== "LOS" && $counterValue != "clear"} {return 0}
}}
send "\r"
return 1
}
如果您确实需要替换一些变量,我会使用格式命令:
proc otn_line_alarm {} {
send [format {table foreach %s row columnName counterValue {
if {$columnName== "LOS" && $counterValue != "clear"} {return 0}
}} $globalTable]
send "\r"
return 1
}