zoukankan      html  css  js  c++  java
  • expect的简单应用

    先看3个脚本:

    1.创建用户:1.createUser.sh

    #!/usr/local/bin/expect
    ##!/usr/bin/expect
    set timeout 1
    #spawn userdel -r hao
    spawn useradd hao
    spawn passwd hao
    expect "新的 密码:"
    send "hao\r"
    expect "重新输入新的 密码:"
    send "hao\r"
    #spwawn id
    
    spawn ssh localuser@192.168.77.80
    expect "localuser@192.168.77.80's password:"
    exec sleep 1
    send "123\r"
    interact

    2.登陆普通用户:2.login.sh

    #!/usr/local/bin/expect
    ##!/usr/bin/expect
    set timeout 1
    
    #spawn su - a
    spawn ssh hao@192.168.77.80
    expect "hao@192.168.77.80's password:"
    exec sleep 1
    send "hao\r"
    #spawn cd /root/AT_EInfoworks/svn/components
    #spawn /root/AT_EInfoworks/svn/components/su_target.sh
    #expect "$"
    #echo who
    interact

    3.切换其他用户:su_localuser.sh

    #!/usr/local/bin/expect
    
    set timeout 1
    
    spawn su localuser
    expect "密码:"
    sleep 1
    send "123\r"
    expect "$"
    interact

    实现了:创建一个普通用户,有普通用户切换到另外一个普通用户的功能。

    附:linux下安装expect
    见:http://blog.csdn.net/wind19/article/details/4905453

    expect的主页:http://expect.nist.gov/ 
    最新稳定版5.43.0的下载地址:http://expect.nist.gov/expect.tar.gz 

    expect依赖于tcl/tk,因此在安装expect之前先安装tcl/tk。

    tcl/tk8.4.16的下载面页:
    http://www.tcl.tk/software/tcltk/downloadnow84.html 
    软件包的下载地址:
    http://prdownloads.sourceforge.net/tcl/tcl8.4.16-src.tar.gz 
    http://prdownloads.sourceforge.net/tcl/tk8.4.16-src.tar.gz

     

    检查系统,看tcl是否已经安装。

    [root@rhel ~]# rpm -qa|grep tcl

     

    已经安装的情况:

     

    因为expect需要重新编译后安装,那么就需要tcl的开发包。

    rpm -ivh --force tcl-devel-8.4.13-3.fc6.i386.rpm

    然后将expect-5.43包解开,开始读INSTALL文档,系统管理员告诉我,不用读,直接运行 ./configure --help开参数。确实好使,又土了一次 :-( 。
       
    1.首先确定tcl开发包安装的位置
    rpm -qpl tcl-devel-8.4.13-3.fc6.i386.rpm|more

    2.然后根据参数,运行./configure
    ./configure --with-tcl=/usr/lib --with-tclinclude=/usr/include/tcl-private/generic

    3.执行
    make

    4.执行
    make install
         
    完成第四步后,expect顺利安装成功。 -

     


    没有安装的情况:


    第一步,安装tcl
    [root@supersun.biz download]#cd tcl8.4.16/unix/
    ./configure
    make
    make install
    安装之后不要删除源码包,在安装expect时需要tcl的头文件。

    安装完毕以后,进入tcl源代码的根目录,把子目录unix下面的tclUnixPort.h copy到子目录generic中 

    第二步,安装tk

    [root@supersun.biz download]#cd tk8.4.16/unix/
    ./configure
    make
    make install

    第三步,安装expect

    在不提供参数的情况下执行configure报错:
    checking for Tcl private headers... checking for tclInt.h... no 
    configure: error: Can't find Tcl private headers 
    再次运行configure脚本,并指定tcl的头文件所在目录:
    [root@supersun.biz expect-5.43]#./configure --with-tclinclude=../tcl8.4.16/generic

    脚本运行正常,进行执行make进行编译
    make

    如果make,或是configure有错误的话,根据提示,再增加配置参数

    编译过程中未出现错误,执行安装:
    make install

     

    配置参数的意思是:

    · --with-tcl=/usr/tcl/lib :(我的环境中是/usr/local/lib) 确保配置脚本找到临时工具目录中的Tcl ,我们不希望它使用主系统中可能存在的tcl.

    · --with-x=no : 告诉配置脚本,不要查找 Tk (Tcl 的 GUI 组件) 或 X 窗口系统库,这两个都有可能存在于主系统中。

    · -with-tclinclude :帮助脚本找到所需要的tcl 头文件。

     

     


    简单一点就是:

    1.安装tcl8.4.16

    cd tcl8.4.16/unix/
    ./configure;make;make install
    cp tclUnixPort.h ../generic/

     2.安装tk

    cd tk8.4.16/unix
    ./configure;make;make install 

     3.安装expect

    ./configure --with-tclinclude=../tcl8.4.16/generic;
    make;make install

     

     

    赠人玫瑰
    手留余香

    我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系!-杨绛先生

    如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的推荐按钮。
    如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的关注我

  • 相关阅读:
    Elasticsearch Windows下安装及配置集群
    .Net文件压缩
    DateHelper
    lambda Helper
    Log4net的使用
    python3之rabbitMQ
    python3之协程
    python3之paramiko模块
    python3之redis
    redis
  • 原文地址:https://www.cnblogs.com/haochuang/p/2672048.html
Copyright © 2011-2022 走看看