我有一个开关(基于CLI),当你点击字母表(我可以使用tcl自动执行)时,它会将我带到当前的STP设置,但是当涉及到更改STP设置时,例如从RSTP到MSTP,手动,我必须点击向上箭头和向下箭头键(仅限选项)。
我需要帮助以tcl格式提供向上箭头和向下箭头命令以使其自动化。
我读到了关于rlwrap但更多的历史/文件编辑可能对我没有帮助。 我已经尝试过“^ [[A”和“[A”选项和hexacodes但没有成功。
我试过“\ u001b [A”等,但STP值没有改变。 CLI是A XML CLI。这是我的剧本。 spawn telnet $ DUT1_IP期望“登录:”发送“$ user \ r”期望“密码:”发送“$ password \ r”期望“sh-3.2#”#sleep 2发送“xml_cli \ r”期望“>> “发送”bridge_config_mode = STP“
如果我必须将模式STP更改为MSTP,我需要使用键盘上的向上箭头键将其更改为MSTP / RSTP。如何使用在期望处理相同。如果我们可以使用相同(或任何其他)的shell脚本,请提出您的想法。
谢谢和问候 沫
答案 0 :(得分:1)
Up 由系统键盘驱动程序映射到三个字符的序列:^[[A
。第一个字符在此处呈现为^[
,是一个 Escape 字符,通常无法在屏幕上呈现,您可以使用\u001b
在Tcl脚本中编写真实字符。 Down 相应地为^[[B
。 (严格来说,它可能是其他字符序列 - 毕竟它取决于终端类型 - 但实际上所有内容都使用相同的东西,谢天谢地!)
让我们通过将这些键序列放在变量中来简化一些事情(我们还需要在真实[
之前使用反斜杠,因为它是一个Tcl metasyntax字符):
set up "\u001b\[A"
set down "\u001b\[B"
现在,您可以将字符发送到远程端:
send $up
expect "...whatever..."
send $down
expect "...blah..."