如何检索用户键入终端的文本(但在用户按下回车之前)

时间:2015-08-06 02:24:04

标签: python bash

我正在编写一个将在bash终端后台运行的程序。我希望能够阅读用户键入(或粘贴)到终端的文本。

示例:

user@host:~/Documents/Code$ grep -rli whatever ./

让我们说用户在bash 中键入了一些内容但尚未按下(如上所示)。

有没有办法读取输入缓冲区以获取当前位于输入缓冲区中的文本?在这个例子中,我希望能够阅读"grep -rli whatever ./"。用户按Enter键并显示新提示后,此方法应返回空字符串。

我考虑过抓取击键但这不会检测所有形式的输入(例如,如果用户使用复制/过去,按Tab键进行自动完成,或使用箭头键调出上一个命令)。

我这样做的首选界面是python,但如果有人知道任何其他语言的解决方案,我会很高兴听到它。

1 个答案:

答案 0 :(得分:1)

我认为您无法在任意时间执行此操作,但bash(和其他shell)允许在其完成功能中具有可扩展性,因此您可以阅读命令行在按下选项卡进行自动完成时所说的内容:{ {3}}