以登录*为例:
类型一:脚本传入用户名和密码**
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
[root@wds ~]# 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
[root@wds home]# expect expect-exec zhangsan 20
zhangsan
20
zhangsan 20
[root@wds home]# cat expect-exec
#!/bin/expect
set name [lrange $argv 0 0]
set age [lrange $argv 1 1]
puts $name
puts $age
puts $argv
[root@wds home]#