Expect是一个用来实现自动交互功能的软件套件 (Expect is a software suite for automating interactive tools)。系统管理员使用它可以创建脚本对命令或程序提供输入,而这些命令和程序是期望从终端(terminal)得到输入,一般来说这些输入都是手工进行输入的。 Expect则可以根据程序的提示模拟标准输入提供给程序需要的输入来实现交互程序执行
第一步:安装tcl
./configure --prefix=/home/zx/tcl
make
make install
cp tclUnixPort.h ../generic/
第二部:安装expect
./configure --prefix=/home/zx/expect
-with-tcl=/home/zx/tcl/lib -with-x=no
-with-tclinclude=/home/zx/tcl8.4.16/generic
make
make install
第三部:编写自动登录脚本
go.sh
#!/bin/bash
echo "select which to go : "
echo "236 => delvelop"
read num
case $num in
236)ip=xxx.xxx.xxx.xxx;;
esac
auto_login_ssh(){
expect -c "
set timeout -1 ;
spawn -noecho ssh -o StrictHostKeyChecking=no $2 $(@:3);
expect *assword:*;
send -- $1\r;
interact;"
}
auto_login_ssh 123456 work@$ip