您好我有以下期望脚本名为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执行它吗?谢谢!
答案 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