我正在尝试使用send and Expect ssh模块在远程UNIX主机上执行命令,但是即使脚本成功登录到服务器,它也不会执行命令。#!/usr/bin/expectset timeout 60spawn ssh xxxx@xxxxxxexpect "yes/no" { send "yes\r" expect "*?assword" { send "xxxxxx\r" } } "*?assword" { send "xxxxxxx\r" }expect "$ "#sleep 5send "ps -aef \r"输出[xxxxx@xxxxxx Scripts]$ ./TestExpect.shspawn ssh xxxxx@xxxxxxxxxxxx@xxxxxx's password:Last login: Wed May 9 02:05:47 2018 from xxxxxxxxxKickstarted on 2015-05-12[xxxxx@xxxxx ~]$ [xxxxxx@xxxxx Scripts]$提示如下[aacdd123@linprod345 ~]$
1 回答
白衣非少年
TA贡献1155条经验 获得超0个赞
问题可能是因为,发送后您什么都没期待ps -aef。因此,在生成输出之前,预期的生成过程已经退出。
尝试在发送后再添加一些命令 ps -aef
send "ps -aef\r"
expect $prompt
send "echo hello\r"
expect $prompt
也尝试查看Expect_out缓冲区,这将为您提供捕获的流。
puts $expect_out(buffer)
- 1 回答
- 0 关注
- 221 浏览
添加回答
举报
0/150
提交
取消