美文网首页
expect与bash结合实现交互

expect与bash结合实现交互

作者: whustle | 来源:发表于2019-08-29 10:29 被阅读0次

    expect脚本可以接受从bash传递过来的参数.可以使用[lindex $argv n]获得,n从0开始,分别表示第一个,第二个,第三个....参数

    # 命令行参数 
    # $argv,参数数组,使用[lindex $argv n]获取,$argv 0为脚本名字
    # $argc,参数个数
    set username [lindex $argv 1]  # 获取第1个参数
    set passwd [lindex $argv 2]    # 获取第2个参数
     
    set timeout 30 # 设置超时
     
    # spawn是expect内部命令,开启ssh连接
    spawn ssh -l username 192.168.1.1
     
    # 判断上次输出结果里是否包含“password:”的字符串,如果有则立即返回,否则就等待一段时间(timeout)后返回
    expect "password:"
     
    # 发送内容ispass(密码、命令等)
    send "ispass\r"
     
    # 发送内容给用户
    send_user "$argv0 [lrange $argv 0 2]\n"
    send_user "It's OK\r"
    # 执行完成后保持交互状态,控制权交给控制台(手工操作)。否则会完成后会退出。
    interact
    

    注:参考http://xstarcd.github.io/wiki/shell/expect.html

    相关文章

      网友评论

          本文标题:expect与bash结合实现交互

          本文链接:https://www.haomeiwen.com/subject/yfvbectx.html