后
% xkbset -repeatkeys
% xinput test 14 | grep -m 1 "key release 36"
并保持第二次返回,没有任何事情发生,正如预期的那样。释放第二次返回后,我得到
key release 36
现在我希望程序立即退出,但它会在退出之前等待额外的按键——即使换档也有效——。我想这会使 xinput 产生一个额外的行,但我不明白为什么这应该是必要的——grep 已经找到了它正在寻找的行。那么为什么不立即退出呢?
PS。答案似乎是正确的,我能够通过这样做得到想要的结果
% xinput test 14 | { grep -m 1 "key release 36" && killall xinput ; }
grep
可能在第一场比赛后退出。它xinput
仍在运行:它只会在下次尝试输出某些内容时注意到管道已关闭。例如,这里只有第一个 pgrep 找到了正在运行的
grep
进程,但左侧的睡眠仍然发生。