expect登陆远程主机并执行命令

code

1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
export cmd=$1
expect << 'END'
set cmd "$env(cmd)"
spawn ssh root@192.168.56.1 $cmd
expect {
"(yes/no)?" {send "yes\r";exp_continue}
"password:" {send "root\r";exp_continue}
eof
}
END

解释

  • export 定义一个变量,获取$1
  • expect << 'END' 开始expect脚本,最后END结束
  • set cmd "$env(cmd)" 获取系统变量
  • spwan 开始一个进程
  • expect {} 具体的应答消息

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器