#!/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 里找到。

这个脚本是参照的

还有命令参数传那些,再慢慢学习。