expect工具 4.3

expect是建立在tcl基础上的一个工具,它可以让一些需要交互的任务自动化完成。

安装 yum –y install expect

工作原理:

首先用spawn开启一个会话,然后用expect-send执行交互操作

spawn后面跟上一个命令操作,表示开启一个会话。expect等待输出特定的字符串,然后用send发送交互字符串。

例:

expect “*assword”提示为”username@host’s password:”等待用户输入密码

send “${password}\r”使用send模拟用户输入密码的字符串

开头必须写#!/usr/bin/expect

set

1>set timeout 30 设置会话时间30,若不限时间设为-1

2>set设置参数 set param “param1” 获取参数${param}


expect

接受命令执行后的输出,然后和期望的字符串匹配

例:expect “$case1”{send “$respond\r”}

结束符

expectof 等待命令执行结束,若没有,可能导致命令还没执行,脚本就结束le

interact 执行完成后保持交互状态,可以手动输入信息

两者二选一即可

expect_continue跳出本次循环

参数

$argc 表示参数个数,可进行判断

if {$argc < 1} {
    #do something
    send_user "usage: $argv0 <param1> <param2> ... "
    exit
}

$argv0表示脚本名

[lindex $argv0]表示第一个参数

[lindex $argv1]表示第二个参数

send_user 标准输出

#!/usr/bin/expect 
set ip [lindex $argv 0]
set password [lindex $argv 1]
set timeout -1
spawn ssh root@$ip
expect {
    "password" {send "$password\r";}
    "yes/no" {send "yes\r";exp_continue}
}
expect "root" {send "mkdir test1\r"}
expect "root" {send "mkdir test2\r"}
send "exit\r" //退出远程登录
expect eof


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值