预计脚本箭头键

问题描述 投票:0回答:2

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

send -- "^[\[C"

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

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

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

networking tcl expect system-administration
2个回答
9
投票

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

send "\033\[C"

更新:

为当前终端获取正确的右箭头键(如

$TERM
)的最安全方法是使用
tput

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

要了解

cuf1
的含义,请运行
man terminfo
并搜索它。 :)


3
投票

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

send "\033\[A"

我已经测试过了

© www.soinside.com 2019 - 2024. All rights reserved.