0

嗨,我有以下名为 a.exp 的期望脚本

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

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

你好世界

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

chmod +x a.exp

现在,我按如下方式运行它

./a.exp

我得到的输出如下

spawn cat a.txt

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

puts [exec cat a.txt]

代替

spawn cat a.txt

它会打印 a.txt 文件的内容。PLZ你能帮我用spawn来执行它吗?谢谢!

4

1 回答 1

4

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

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

如果您真的只是想提取其他程序写出的所有内容而不发送任何内容作为回报,您可以使用最后一行来等待文件结束:

expect eof

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

生成猫.txt
你好世界
于 2011-05-26T20:05:57.480 回答