TCL EXPECT - 输入密码并打印到stdout并分配给变量

时间:2017-07-25 02:30:07

标签: tcl expect

我目前有一个TCL期望脚本通过SSH连接到多个设备。 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 "#"

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用stty命令:

stty -echo
# there is no echo in terminal
#

stty echo
# return echo back