linux expect输入用户名和密码

本文主要介绍linux的expect命令,用来自动传入用户名和密码案例。

以登录*为例:
类型一:脚本传入用户名和密码**

cat  /root/expect/***_all_expect
#!/bin/expect

spawn open*** --config /etc/open***/all.o***
expect "Username"
send "xxx\r"  // 这里输入用户名 
expect "Password" 
send "xxx\r" //这里输入密码

interact

类型二:命令行传入密码

cat  /root/expect/***_all_expect
#!/bin/expect

set password [lrange $argv 0 0] // 这里把第一个参数数值赋值给password
spawn open*** --config /etc/open***/all.o***
expect "Username"
send "xxx\r"
expect "Password"
send "$password\r" // 把password变量当作密码传入

interact

[ ~]# expect /root/expect/***_all_expect xxx // xxx即为命令行传入的参数

说明:
[lindex $argv n]获得index为n的参数(index从0开始计算)
$argc为命令行参数的个数
$argv为所有的命令行参数
[lrange $argv 0 0]表示第一个参数
[lrange $argv 0 3]表示第1到第3个参数

命令行参数demo

[ home]# expect expect-exec zhangsan 20
zhangsan
20
zhangsan 20

[ home]# cat expect-exec 
#!/bin/expect
set name [lrange $argv 0 0]
set age  [lrange $argv 1 1]
puts $name
puts $age
puts $argv
[ home]#

相关推荐