Expect 是基于Tcl语言开发的,并被广泛应用于交互式操作和自动化测试的场景之中。http://expect.sourceforge.net/
一些命令:
spawn 用于生成一个子进程运行命令
expect 用于期待一个字符串的出现
send 就是模拟人工输入一个字符串
autoexpect 根据自身在运行时用户的操作而生成一个expect脚本
下面例子为:登录服务器并在/home/work/下建立ww目录
#!/usr/bin/expect
# 设置超时时间为10秒,expect期待时间
set timeout 10
set host 192.168.1.10
set name root
set password 111111
spawn ssh $host -l $name
# 是否永久保存 RSA
expect
{
"(yes/no)?"
{
send "yes\n"
expect "password:"
send "$pasword\n"
}
"password:"
{
send "$password\n"
}
}
# root为"#",非root为"$"
expect "#"
send "sleep 1 &&cd /home/work/ &&mkdir ww && exit \r"
interact
exit