猿问

Unix-执行命令时无法正常工作

我正在尝试使用send and Expect ssh模块在远程UNIX主机上执行命令,但是即使脚本成功登录到服务器,它也不会执行命令。


#!/usr/bin/expect

set timeout 60

spawn ssh xxxx@xxxxxx


expect "yes/no" {

        send "yes\r"

        expect "*?assword" { send "xxxxxx\r" }

        } "*?assword" { send "xxxxxxx\r" }


expect "$ "

#sleep 5

send "ps -aef \r"

输出

[xxxxx@xxxxxx Scripts]$ ./TestExpect.sh

spawn ssh xxxxx@xxxxxx


xxxxxx@xxxxxx's password:

Last login: Wed May  9 02:05:47 2018 from xxxxxxxxx

Kickstarted on 2015-05-12

[xxxxx@xxxxx ~]$ [xxxxxx@xxxxx Scripts]$

提示如下


[aacdd123@linprod345 ~]$


守着一只汪
浏览 224回答 1
1回答

白衣非少年

问题可能是因为,发送后您什么都没期待ps -aef。因此,在生成输出之前,预期的生成过程已经退出。尝试在发送后再添加一些命令 ps -aefsend "ps -aef\r"expect $promptsend "echo hello\r"expect $prompt也尝试查看Expect_out缓冲区,这将为您提供捕获的流。puts $expect_out(buffer)
随时随地看视频慕课网APP
我要回答