我不知道如何使用expect发送箭头键,因此我为所有箭头键生成了autoexpect脚本,并发现autoexpect为右箭头键生成了这个字符:
send -- "^[\[C"
我在自定义脚本中使用了相同的发送命令,但收到以下错误:
while executing
"send -- "^[\[C"
expect eof
"
(file "script_auto.exp" line 38)
我到底该怎么做才能发送右箭头键。任何帮助将不胜感激。
"^[\[C"
是 Tcl
中的无效字符串。 ^[
应该是 ESC
字符,即 \033
。所以试试这个:
send "\033\[C"
更新:
为当前终端获取正确的右箭头键(如
$TERM
)的最安全方法是使用tput
:
[bash] # v=$(tput cuf1)
[bash] # printf '%q\n' "$v"
$'\E[C'
[bash] #
要了解
cuf1
的含义,请运行 man terminfo
并搜索它。 :)
对于向上箭头键,您必须如下所示发送
send "\033\[A"
我已经测试过了