#!/usr/bin/expect -fset timeout 15 #设置交互式操作的最大超时 sset host 192.168.1.50 #设置变量 hostset name hoho #设置变量 nameset password gogogle #设置变量 passwordspawn ssh $name@$host # #spawn一个ssh进程expect { "(yes/no)?" { #检出输出是否有"(yes/no)"的字符 send "yes\r" #交互式发送 "yes" , 命令字符串结尾别忘记加上“\r”,如果出现异常等待的状态可以核查一下。 expect "password:" {send "$password\r"} #交互式发送密码 } "password:" {send "$password\r"} #不是第一次登录,交互式发送密码}expect "$name" #判断输出是否成功,因为登录成功后会有 [hoho@主机名]$的输出可以匹配send "who\n" #匹配成功后交互式发送命令expect "hoho" #上一个命令输出是否有hoho关键字send_user "now you can do something in this terminal\n" #向终端输出提示interact # 这里使用了 interact 命令,执行完程序后,用户可以在 $host 终端进行交互操作。
这里的用法全部都可以通过 man expect 里找到。
这个脚本是参照的
还有命令参数传那些,再慢慢学习。