我正在编写一个将在bash终端后台运行的程序。我希望能够阅读用户键入(或粘贴)到终端的文本。
示例:
user@host:~/Documents/Code$ grep -rli whatever ./
让我们说用户在bash 中键入了一些内容但尚未按下(如上所示)。
有没有办法读取输入缓冲区以获取当前位于输入缓冲区中的文本?在这个例子中,我希望能够阅读"grep -rli whatever ./"
。用户按Enter键并显示新提示后,此方法应返回空字符串。
我考虑过抓取击键但这不会检测所有形式的输入(例如,如果用户使用复制/过去,按Tab键进行自动完成,或使用箭头键调出上一个命令)。
我这样做的首选界面是python,但如果有人知道任何其他语言的解决方案,我会很高兴听到它。
答案 0 :(得分:1)
我认为您无法在任意时间执行此操作,但bash(和其他shell)允许在其完成功能中具有可扩展性,因此您可以阅读命令行在按下选项卡进行自动完成时所说的内容:{ {3}}