【问题标题】:Expect script arrow keys期望脚本箭头键
【发布时间】:2014-12-16 01:30:52
【问题描述】:

我不知道如何使用expect发送箭头键,因此我为所有箭头键生成了autoexpect脚本,发现autoexpect为右箭头键生成了这个字符:

send -- "^[\[C"

我在自定义脚本中使用了相同的发送命令,但出现以下错误:

while executing
"send -- "^[\[C"
expect eof
"
    (file "script_auto.exp" line 38)

我应该怎么做才能发送右箭头键。任何帮助将不胜感激。

【问题讨论】:

  • 你是发送^ [还是转义?应该是 escape-[-C.
  • 我只输入了右箭头并检查了autoexpect生成的脚本。上面提到的命令是由autoexpect生成的。
  • 我尝试捕获右箭头键并得到send -- "^[\[1;5C"。想知道为什么会有这种差异。无论如何,你可以试试send -- {^[\[C} 吗?
  • 它没有给我任何错误,但它没有正确单击。

标签: networking tcl expect system-administration


【解决方案1】:

"^[\[C"Tcl 中的无效字符串。 ^[ 应该是 ESC 字符,即 \033。所以试试这个:

send "\033\[C"

更新:

为当前终端(如$TERM)获取正确的右箭头键的最安全方法是使用tput

[bash] # v=$(tput cuf1)
[bash] # printf '%q\n' "$v"
$'\E[C'
[bash] #

要了解cuf1 的含义,请搜索terminfo 的手册页。 :)

【讨论】:

    【解决方案2】:

    对于向上箭头键,您必须如下所示发送

    send "\033\[A"
    

    我已经测试过了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-18
      • 2014-09-20
      • 1970-01-01
      • 2017-12-09
      • 1970-01-01
      相关资源
      最近更新 更多