我知道为了在expect脚本中发送返回,我会这样做:
send -- "\r"
INSERT 和 F12 键的send命令是什么?我已经在线查看,无法在任何地方找到它。
答案 0 :(得分:2)
通过运行od -c
确定 INSERT 后跟 F12 时终端发送的字符:
$ od -c
^[[2z^[[193z <-- Press keys here, then ENTER and Ctrl-D
0000000 033 [ 2 z 033 [ 1 9 3 z \n
0000013
这意味着您应该send -- "\E\[2z\E\[193z"
。请注意,这是终端特定的。上述序列由我的TERM=xterm-256color
发送。
答案 1 :(得分:2)
我必须说最初接受的answer不正确,因为
send -- "[2~"
错了,因为
[
具有特殊含义(命令替换),因此应该反斜杠转义; \E
输出中的infocmp
); 正确的方法:
set kf12 [exec tput kf12]
set kins [exec tput kich1]
... ...
send $kf12
如果您需要手动指定TERM类型,请使用tput -T
:
<强> -T 型 强>
表示终端的类型。通常,此选项是不必要的,因为默认值取自环境变量
TERM
。如果指定了-T
,那么shell变量LINES
和COLUMNS
也将被忽略。
对于魔术字符串kf12
和kich1
,请在terminfo manual页面中搜索。
答案 2 :(得分:1)
使用infocmp xterm
作为来源:
$ infocmp xterm |grep -oP "f12=\S+|kich1=\S+"
f12=\E[24~,
kich1=\E[2~,
send -- "[2~"
或send -- {[2~}
send -- "[24~"
或send -- {[24~}