0

我有一个开关(基于 CLI),当您点击字母表时(我能够使用 tcl 自动执行),它会将我带到当前的 STP 设置,但是当涉及到手动将 STP 设置从 RSTP 更改为 MSTP 时,我必须点击向上箭头向下箭头键(唯一可用的选项)。

我需要帮助以 tcl 格式提供向上箭头和向下箭头命令以使其自动化。

我阅读了有关 rlwrap 的信息,但更多的是历史/文件编辑,这可能对我没有帮助。我尝试了“ ^[[A” 和 “[A” 选项和十六进制代码,但没有成功。

我试过 "\u001b[A" 等,但 STP 的值没有改变。CLI 是一个 XML CLI。这是我的脚本。spawn telnet $DUT1_IP 期望 "login:" 发送 "$user\r" 期望 "Password:" 发送 "$password\r" 期望 "sh-3.2#" #sleep 2 发送 "xml_cli\r" 期望 ">> " 发送“bridge_config_mode = STP”

如果我必须将模式 STP 更改为 MSTP 我需要使用键盘上的向上箭头键将其更改为 MSTP /RSTP 。如何在期望中使用相同的处理方式。如果我们可以为相同(或任何其他)使用 shell 脚本,请给出您的想法。

感谢和问候莫

4

1 回答 1

1

Up由系统键盘驱动程序映射到三个字符序列:^[[A. ^[此处呈现的第一个字符是通常无法在屏幕上呈现的转义\u001b字符,您可以在 Tcl 脚本中使用. Down是相应的^[[B。(严格来说,它可能是其他字符序列——毕竟这取决于终端类型——但实际上这里所有的东西都使用相同的东西,谢天谢地!)

让我们通过将这些键序列放入变量中来为您简化事情(我们还需要在实数之前使用反斜杠,[因为它是 Tcl 元语法字符):

set up   "\u001b\[A"
set down "\u001b\[B"

现在您可以这样做将字符发送到远程端:

send $up
expect "...whatever..."
send $down
expect "...blah..."
于 2013-04-18T04:59:36.373 回答