十五年测试老手,长期负责WEB\APP 项目测试,目前主要负责团队管理工作。

在shell脚本中利用expect实现自动应答

上一篇 / 下一篇  2012-01-13 18:15:37 / 个人分类:liunx相关

文章来源
  • 文章来源:【转载】
要交互的脚本(talk.sh)如下: 
#!/bin/bash 
echo "Who are you?" 
read who 
echo "Hello,$who" 
echo "Are you happy?" 
read answer 
echo "why?" 
read answer 

实现自动应答的脚本auto.sh如下: 
#!/bin/bash 

expect<<- END 
spawn ./talk.sh 
expect "who" 
send "firefly\n" 
expect "happy?" 
send "Yes,I am happy.\n" 
expect "why?" 
send "Because it worked!\n" 
expect eof 
exit 
END 

执行auto.sh后可以看到自动交互如下: 
spawn ./talk.sh 
Who are you? 
firefly 
Hello,firefly 
Are you happy? 
Yes,I am happy. 
why? 
Because it worked! 
目前只用到了expect最基本的用法,不过对用脚本实现自动化已经很有用了 
-------------------------------------------------------------------------------------------------
expect 实现su root:
#!/usr/bin/expect

#created by neilzhao of linpus corp.

set passwd 111111
spawn su
expect "Password:"
send "$passwd\n"
interact

TAG:

 

评分:0

我来说两句

Open Toolbar