#!/opt/sfw/bin/expect --
spawn telnet -e ! [lindex $argv 0]
expect "<"
send "ACT-USER::ABCDEFG:123::\"ABCD\";"上面给出的错误是由于双引号内的双引号造成的
错误:
spawn telnet -e !
Telnet escape character is '!'.
invalid flags
send: spawn id exp7 not open
while executing
"send "ACT-USER::ABCDEFG:123::'\"ABCD\"';""
(file "./get-amp-pms.sh" line 4)发布于 2016-01-04 15:50:52
使用大括号代替发送的双引号,如下所示:
send {ACT-USER::ABCDEFG:123::"ABCD";}发布于 2016-01-07 07:17:34
该错误与双引号无关;派生的进程在发送命令字符串之前出现错误而退出。
expect是tcl,因此tcl引用机制起作用。发送带双引号的字符串可以通过转义带反斜杠的引号或使用大括号来完成:
send "message with \"double quotes\""
send {message with "double quotes"}发布于 2016-01-07 05:54:47
不确定,但我们可以在一些命令中使用单引号(如(Sed))来克服此问题,并在不影响functionality.So的情况下自由地在单引号内使用双引号尝试使用单引号中的参数(例如:发送'paramters‘)来执行它
https://stackoverflow.com/questions/34586662
复制相似问题