Expect 脚本中的 spawn 命令问题

Expect 脚本中的 spawn 命令问题

我正在使用 KALI Linux,并且在使用 Expect 脚本时遇到一些问题。

我不知道为什么生成命令不执行任何操作,它只是回显相同的文本

#!/usr/bin/expect -f
spawn apt-get install expect

或者

#!/usr/bin/expect -f
spawn ssh 10.10.80.1

当我使用执行它时,它只是打印出相同的文本./test.sh,这是结果

spawn apt-get install expect

spawn ssh 10.10.80.1

我究竟做错了什么?

答案1

问题是expect运行您的生成命令,该命令启动apt-get,然后expect到达脚本末尾,因此它停止,并且apt-get被信号 SIGHUP 杀死。

至少你应该添加另一行

expect eof

到您的脚本以expect从生成的命令中读取直到它到达文件结尾。

答案2

  • send– 将字符串发送到进程
  • expect– 等待进程中的特定字符串
  • spawn– 启动命令

您必须关闭生成启动的每个命令,否则它会将其读取为一行。

使用 EOF 时,您的期望脚本应如下所示:

#!/usr/bin/expect -f
spawn ssh 10.10.80.1
expect EOF

相关内容