2

我今天一直在玩 Expect/TCL,我希望有人能告诉我为什么下面的脚本会失败:

: command not found  
./expect3: line 3: send: command not found

#!/usr/bin/expect -f

send " we are going to open up a file for reading, ok? \n"
expect "ok"

set fileopen [open "/home/aaron/text.txt" "r"]

set a [read $fileopen]
send "i am expecting to see a string from the file here $fileopen"

close $fileopen

send 和 close 命令都失败了,但我用 spawn 命令编写的其他脚本似乎工作正常?

4

1 回答 1

1

问题

主要问题是您没有正确分离命令。TCL 中的命令必须用换行符或分号分隔。

解决方案

一般来说,每行应该只有一个 Expect 或 TCL 命令,除非你有一个格式正确的复合语句。例如,这个修改后的代码段将起作用:

#!/usr/bin/expect -f

send "We are going to open up a file for reading, ok?\n"
expect "ok"

因为 send 和 expect 命令用换行符分隔。

也可以看看

http://tmml.sourceforge.net/doc/tcl/Tcl.html

于 2012-06-26T06:03:17.613 回答