使用expect通过ssh远程执行脚本

时间:2017-03-11 21:14:27

标签: ssh stdin expect remote-execution

我是使用nl = [x.split(', ')[0] + ' - ' + x.split(', ')[1] for x in name if x] 的新手。我尝试下面的代码,它失败了:

expect

任何人都可以澄清

1 个答案:

答案 0 :(得分:0)

这可能对您有所帮助

#!/usr/bin/expect
set timeout -1

spawn -noecho bash -c "ssh -t user@host '<here-comes-your-command>'"

expect {
  -re ".*assword.*" {
    exp_send "$env(PASS_WORD)\n"
    exp_continue
  }
}

注意: -

1)在运行之前将脚本复制到远程主机。传递整个剧本并不是一件好事。

2)访问期望中的环境变量,使用$env(variable_name)

在上面的示例中,对于$PASS_WORD,我使用了$env(PASS_WORD)