版权声明:本文为博主原创文章,未经博主允许不得转载。 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 变量。