我使用下面的expect腳本的SSH遠程登錄樹莓派和執行命令期待SSH遠程登錄腳本和執行命令
#!/usr/bin/expect
set timeout 60
spawn ssh [lindex $argv 1]@[lindex $argv 0]
expect "yes/no" {
send "yes\r"
expect "*?assword" { send "[lindex $argv 2]\r" }
} "*?assword" { send "[lindex $argv 2]\r" }
expect "[email protected] ~ $ " {
send "ls -la\r"
}
interact
的問題是,這個腳本能夠登錄到覆盆子,但是當它爲了執行「ls -la」命令而行,什麼也沒有發生。任何人都可以幫我解決這個腳本?我在哪裏犯錯?
確定的,如果我把
exp_internal 1
線在我的劇本我獲得以下的地方匹配輸出失敗
期待:執行「:\ r \ nLinux raspberrypi 3.10.24以上#614 PREEMPT Thu Dec 19 20:38:42 GMT 2013 armv6l \ r \ n \ r \ n Debian GNU/Linux系統附帶的程序是免費軟件;每個程序的準確分配條款被描述在該\ r \在/usr/share/doc/*/copyright.\r\n\r\nDebian GNU/Linux的nindividual文件帶有絕對沒有擔保,適用法律npermitted程度\ r \。\ r \ n上次登錄:星期一03月03日19點00分11秒2014從192.168.1.200 \ r \ r \ n \ u001b] 0; PI @樹莓派:〜\ u0007 \ u001b [01; 32mpi @樹莓派\ u001b [00米\ u001b [01; 34m〜$ \ u001b [00m「(spawn_id exp6)匹配glob模式」* pi @ raspberrypi〜$ *「?沒有
應該不是這種匹配是真的嗎?
另一種選擇是啓用基於密鑰的登錄到您的Pi,以便您不必擔心密碼。然後你可以運行'ssh pi.ip.address ls -la'。 – larsks
我無法使用基於密鑰的登錄,他們必須是基於密碼的登錄。 – prattom