Bash 你能通过管道将F键回传到另一个程序吗?

Bash 你能通过管道将F键回传到另一个程序吗?,bash,pipe,stdin,Bash,Pipe,Stdin,我正在尝试编写一个简短的bash hack,它需要用管道敲击F键 基本上我想做的是: (echo "1"; "for x in 1..9; do echo "123<F1>34<F3>"; done; echo "<F1>")|./program (echo“1”;“表示1..9中的x;do echo“12334”;done;echo”“)。/程序 带那个的F键在哪里# 这是可能的吗?如果有人能给我指出文档,或者一些取决于您的终端的东西,功能键只是一个字符

我正在尝试编写一个简短的bash hack,它需要用管道敲击F键 基本上我想做的是:

(echo "1"; "for x in 1..9; do echo "123<F1>34<F3>"; done; echo "<F1>")|./program
(echo“1”;“表示1..9中的x;do echo“12334”;done;echo”“)。/程序
带那个的F键在哪里#


这是可能的吗?如果有人能给我指出文档,或者一些取决于您的终端的东西,功能键只是一个字符序列。您可以通过
cat
看到它们是什么:

$ cat
^[OP
^[OQ
^[OR

这是我按顺序点击F1、F2、F3。因此,要将它们回显到您的程序中,您只需回显这些控制代码(注意,第一个控制代码是ctrl-ESC),您应该都已设置好。

要扩展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键的名称。

谢谢,在我读到我差点把头撞到桌子上之后。在使用Linux 10年后,我应该知道这一点……但好的一面是其他人都知道答案!