Tcl expect spawn未执行

Tcl expect spawn未执行,tcl,expect,spawn,Tcl,Expect,Spawn,嗨,我有以下名为a.exp的expect脚本 #!/usr/bin/expect spawn cat a.txt 其中a.txt包含以下单行字符串文本 Hello World 现在,我运行它如下 ./a.exp spawn cat a.txt 我得到的结果如下 ./a.exp spawn cat a.txt 另一方面,如果我使用以下脚本 puts [exec cat a.txt] 而不是 spawn cat a.txt 它会打印a.txt文件的内容。你能帮我用spawn执行吗?谢谢

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

#!/usr/bin/expect
spawn cat a.txt
其中a.txt包含以下单行字符串文本

Hello World 现在,我运行它如下

./a.exp
spawn cat a.txt
我得到的结果如下

./a.exp
spawn cat a.txt
另一方面,如果我使用以下脚本

puts [exec cat a.txt]
而不是

spawn cat a.txt

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

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

#!/usr/bin/expect
spawn cat a.txt
expect "\n";        # Wait for a newline
如果您真的只是想将其他程序写入的所有内容都拉入,而不发送任何返回,则可以使用最后一行来等待文件结束:

expect eof
当我测试时,两者都会产生这样的输出:

spawn cat a.txt Hello World 产卵猫a.txt 你好,世界
您还没有告诉它从生成的程序中读取任何内容。如果我使用此版本的
a.exp
,它将获得我认为正确的输出:

#!/usr/bin/expect
spawn cat a.txt
expect "\n";        # Wait for a newline
如果您真的只是想将其他程序写入的所有内容都拉入,而不发送任何返回,则可以使用最后一行来等待文件结束:

expect eof
当我测试时,两者都会产生这样的输出:

spawn cat a.txt Hello World 产卵猫a.txt 你好,世界