期望spawn没有执行

时间:2011-05-26 19:01:55

标签: tcl expect spawn

您好我有以下期望脚本名为a.exp

#!/usr/bin/expect
spawn cat a.txt

其中a.txt包含以下单行字符串文本

Hello World

接下来我使用以下命令使其可执行

chmod +x a.exp

现在,我运行如下

./a.exp

我得到的输出如下

spawn cat a.txt

另一方面,如果我使用以下脚本

puts [exec cat a.txt]

而不是

spawn cat a.txt

它确实打印了a.txt文件的内容。你可以帮我用spawn执行它吗?谢谢!

1 个答案:

答案 0 :(得分:4)

你没有告诉它从产生的程序中读取任何内容。如果我使用这个版本的a.exp,它会得到我认为正确的输出:

#!/usr/bin/expect
spawn cat a.txt
expect "\n";        # Wait for a newline

如果你真的只想把其他程序写出的所有东西都放回来而不发回任何东西,你可以使用最后一行来等待文件结束:

expect eof

当我测试时,两者都产生了这个输出:

spawn cat a.txt
Hello World