TCL EXPECT - 输入密码并打印到标准输出并分配给变量
TCL EXPECT - Enter password with printing to stdout and assign in to a variable
我目前有一个通过 SSH 连接到多个设备的 TCL expect 脚本。 Ivee 使用 for 循环来遍历设备。
我的问题是实际密码在脚本中以纯文本形式定义为变量。因为我们使用的是 TACACS,所以我所有设备的密码都是相同的。
我想要发生的是,当我输入密码时,没有 STDOUT,当我按 ENTER 时,它会将它分配给我的脚本可以使用的变量。
这是我的脚本示例:
set userName "me"
set host "192.168.1.1"
puts "Enter password: "
gets stdin passWord
spawn ssh $userName\@$host
expect "*word: "
send "$passWord\r"
expect "#"
send "term len 0\r"
expect "#"
send "show ip int br\r"
expect "#"
谢谢!
您可以使用stty
命令:
stty -echo
# there is no echo in terminal
#
stty echo
# return echo back
我目前有一个通过 SSH 连接到多个设备的 TCL expect 脚本。 Ivee 使用 for 循环来遍历设备。
我的问题是实际密码在脚本中以纯文本形式定义为变量。因为我们使用的是 TACACS,所以我所有设备的密码都是相同的。
我想要发生的是,当我输入密码时,没有 STDOUT,当我按 ENTER 时,它会将它分配给我的脚本可以使用的变量。
这是我的脚本示例:
set userName "me"
set host "192.168.1.1"
puts "Enter password: "
gets stdin passWord
spawn ssh $userName\@$host
expect "*word: "
send "$passWord\r"
expect "#"
send "term len 0\r"
expect "#"
send "show ip int br\r"
expect "#"
谢谢!
您可以使用stty
命令:
stty -echo
# there is no echo in terminal
#
stty echo
# return echo back