expect 执行远程脚本接收打印信息然后退出,exp 执行完后退出

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34354426/article/details/79908519

执行远程服务器的脚本,并能够打印信息,然后打印完自己退出。


1 、 首先来个shell    名称:start.sh

  #!/bin/bash    #声明bash解释器

  result=`./upload.exp $path [/bash]`        #执行expect脚本,然后接受返回的参数

  echo "${result}"    #打印upload.exp执行后返回结果

  if [[ ${result} =~ "ERROR" ]];then                   #如果报错,异常退出

    echo "[ERROR] Upload failed TestFight failed, please check"
    exit 1
  fi  


2 、 在写个upload.exp 脚本

    #!/usr/bin/expect -f                      #声明是expect 解释器

    spawn ssh  [email protected]        #远程连接的服务器name 和 ip

    expect { 
    "yes/no" {send "yes\r";exp_continue}    #返回结果如果包含yes/no 自动填写yes
    "Password:" {send "123456\r"}           # 自动填写密码
    }
    expect "#"                  #返回任意字符
    send "sh ~/yuneecapp-ios/upload.sh\r"   #执行远程脚本
    expect "#"                #接受任意字符
    send "exit\r"           #发送退出,他自己回执行完毕后退出

    interact                  #声明为交互模式

最终结果是: 登陆远程服务器后执行脚本,打印脚本信息,打印完毕后,自动退出远程服务器。然后把打印结果传入start.sh脚本中的result 变量。


猜你喜欢

转载自blog.csdn.net/qq_34354426/article/details/79908519
今日推荐