您的位置:首页 > 运维架构 > Shell

bash嵌套expect实现交换机的交互式登录实例

2016-05-10 18:27 423 查看

1. expect实现参数传递

1.1 实现

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

1.2 样例

cat telnet.exp
#!/usr/bin/expect
set host [lindex $argv 0]
set passwd [lindex $argv 1]
set passwden [lindex $argv 2]
spawn telnet $host
expect "Password:"
send "$passwd\r"
send "en\r"
send "$passwden\r"
interact

2. bash嵌套expect

2.1 我想这样使用的原因?

我在登录交换机时,需要交互式登录,需要给控制台发送命令并输出执行结果;
如果只用expect的话,脚本内含有IP,密码等敏感信息,除设置脚本权限为700外,我没有实现给expect加密;
所以间接的方法是用bash执行expect脚本,然后用shc给bash加密。

2.2 样例

vim telnet.sh
#!/bin/bash
expect telnet.exp 192.168.x.x 123123456

2.3 shc加密

shc -r -f telnet.sh
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: