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

标签 python bash

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

例子:

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

假设用户已经在 bash 中输入了一些内容但还没有按下回车键(如上所示)。

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

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

我首选的接口(interface)是 python,但如果有人知道任何其他语言的解决方案,我会很高兴听到。

最佳答案

我不认为您可以在任意时间执行此操作,但是 bash(和其他 shell)允许在其完成功能中进行扩展,因此您可以阅读当按下选项卡以进行自动完成时命令行显示的内容:http://fahdshariff.blogspot.com/2011/04/writing-your-own-bash-completion.html

关于python - 如何检索用户在终端中输入的文本(但在用户按下回车键之前),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31845826/

相关文章:

bash - 比较bash中的变量和整数

python - 如何在Python中加载对象时使用类型提示

linux - 类似于linux上的goto

linux - "printf -v"内部函数不适用于重定向输出

python - 如何从 pdb 中调用 help()

Bash 脚本 echo 正在执行一个奇怪的替换

linux - shell脚本中调试函数的含义

Python:当变量在列表中时返回列表中的下一个最大整数

python - 从 Google App Engine 访问 Gmail 帐户

python - 以模块化方式为文件解析器函数编写测试