bluecarrot 2020-08-19
以登录*为例:
类型一:脚本传入用户名和密码**
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]#