你能通过管道将F-Keys回应到另一个程序吗?

时间:2012-04-18 19:58:03

标签: bash pipe stdin

我正在尝试编写一个简短的bash hack,需要使用F-Keys的管道按键 基本上我要做的是:

(echo "1"; "for x in 1..9; do echo "123<F1>34<F3>"; done; echo "<F1>")|./program

其中是带有#

的F键 这可能吗?如果是这样,有人可以指向我的文档或其他东西

2 个答案:

答案 0 :(得分:2)

根据您的终端,功能键只是一系列字符。您可以通过cat了解它们的用途:

$ cat
^[OP
^[OQ
^[OR

这是我按顺序击中 F1 F2 F3 。因此,为了将它们回显到您的程序中,您可以回显这些控制代码(注意第一个有 ctrl - ESC ),您应该全部设置。

答案 1 :(得分:0)

要扩展zigdon的答案,您可以使用tput为终端生成正确的序列:

f1=$(tput kf1)
f2=$(tput kf2)
# ...
(echo 1; for x in {1..9}; do echo "123${f1}34$f3"; done; echo "$f1") | ./program

“kf1”和“kf2”名称分别是F1和F2键的terminfo capabilities