Install

yum install tcl tcl-devel

yum install expect expect-devel

Expect用法

  • 告诉操作系统脚本里的代码使用那一个shell来执行

#!/usr/bin/expect

  • 设置超时时间(单位:秒 timeout -1 为永不超时)

set timeout 30

  • 给shell运行进程加个壳,用来传递交互指令(expect内部命令),执行其他的shell指令

spawn ssh -l username 192.168.1.1

  • 判断上次输出结果里是否包含“password:”的字符串,如果有则立即返回,否则就等待一段时间后返回,这里等待时长就是前面设置的30秒

expect "password:"

  • 执行交互动作,与手工输入密码的动作等效

send "ispass\r" 命令字符串结尾别忘记加上“\r”,如果出现异常等待的状态可以核查一下。

  • 执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了。如果没有这一句登录完成后会退出,而不是留在远程终端上。

interact

  • expect脚本可以接受从bash传递过来的参数.可以使用[lindex $argv n]获得,n从0开始,分别表示第一个,第二个,第三个....参数

$argv 参数数组

results matching ""

    No results matching ""