我正在使用 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