如何修改expect获取到的字符串?

1、使用expect脚本实现自动部署,服务器上存在多个旧版本的pm2进程,

clipboard.png

能拿到得到的字符串是:

clipboard.png

期望替换掉res中换行符,最终目的是停掉所有相关的进程,请大佬指点,谢谢

部分代码:

spawn ssh $user@$server

expect {
  "*yes/no" { send "yes\r"; exp_continue }
  "*password:" { send "$pwd\r" }
}

expect "$*"
send "cd $wd\r"

# 处理pm2进程
# 是否存在其他版本,如果有,取到该版本号并stop
send "pm2 ls |grep $name |awk '{print \$2}'\r"

expect {
  -re \[${name}_0-9.\n\r\]\{6,99\} {
    set res $expect_out(0,string)
    puts "====res: ${res}===="
    # 替换掉res中换行符
    # 然后使用 pm2 stop ${res} 来停掉所有的进程
  }
}
阅读 1.7k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题