expect安装去测试

1.下载expect和tcl

下载地址:http://download.csdn.net/download/tobyaries/5754943

2.安装expect

tar -zxvf tcl8.4.11-src.tar.gz 
tar -zxvf expect-5.43.0.tar.gz 
cd tcl8.4.11/unix
 ./configure
make && make install

cd expect-5.43

./configure --with-tcl=/usr/local/lib/ --with-tclinclude=/data/software/tcl8.4.11

make && make install

3.脚本测试

 

[plain] view plain copy
 
 print?在CODE上查看代码片派生到我的代码片
  1. #!/usr/bin/expect -f  
  2.   
  3.   
  4. set timeout 30  
  5. set name [lindex $argv 0]  
  6. set pw [lindex $argv 1]  
  7. log_user 0  
  8. spawn passwd $name  
  9. for {set i 1} {$i < 3} {incr i} {  
  10.     expect "*password:" {send "$pw\r"}  
  11. }  
  12. expect "*successfully"  
  13.     send_user "Password updated successfully\n"  
  14. expect eof  



 

 

[解析]

  很简单的程序,首先把第一个参数赋值给变量name作为用户名,把第二个参数赋值给pw作为密码。然后关闭标准输出,就是类似shell的 "> /dev/null",然后spawn开启子进程运行passwd程序,因为会重复输入2次密码,所以这里我们用到了TCL语法的for循环,执行2次密码输入。最后匹配到successfully字样的就输出修改成功,然后退出脚本。

posted on 2016-09-20 16:08  anruy  阅读(261)  评论(0编辑  收藏  举报

导航