-1

我每天都必须一遍又一遍地连接到许多设备......我可以用 bash 自动化它并期望这个脚本:

#!/usr/bin/expect
spawn  ssh hostname -l username
expect "password:"
send "secret\n"
interact

大多数设备都需要“root”作为登录名,所以上面的脚本可以很好地解决这个问题。我想修改上面的脚本尝试登录一次,如果失败,切换到另一个用户名并提示我输入密码。那可能吗?

我知道密钥,以及脚本中密码的不良做法,这对我来说并不重要。

4

1 回答 1

0

The man page has tons of great examples.

expect {
  "string that indicates success" {
  }
  "string that indicates failure" {
    close
    stty -echo
    send_user "Enter password: "
    expect_user -re "(.*)\n"
    send_user "\n"
    send "$expect_out(1,string)\r"
    stty echo
  }
}
interact
于 2012-10-28T05:47:10.360 回答