我正在嘗試使用send and Expect ssh模塊在遠(yuǎn)程UNIX主機(jī)上執(zhí)行命令,但是即使腳本成功登錄到服務(wù)器,它也不會(huì)執(zhí)行命令。#!/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貢獻(xiàn)1155條經(jīng)驗(yàn) 獲得超0個(gè)贊
問(wèn)題可能是因?yàn)?,發(fā)送后您什么都沒(méi)期待ps -aef。因此,在生成輸出之前,預(yù)期的生成過(guò)程已經(jīng)退出。
嘗試在發(fā)送后再添加一些命令 ps -aef
send "ps -aef\r"
expect $prompt
send "echo hello\r"
expect $prompt
也嘗試查看Expect_out緩沖區(qū),這將為您提供捕獲的流。
puts $expect_out(buffer)
添加回答
舉報(bào)
0/150
提交
取消