背景: 我有一个 Python 子进程,它连接到一个类似 shell 的应用程序,该应用程序使用 readline 库来处理输入,并且该应用程序有一个用于命令输入的 TAB 完成例程,就像 bash 一样。生成子进程,如下所示:
def get_cli_subprocess_handle():
return subprocess.Popen(
'/bin/myshell',
shell=False,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
)
一切都很好,除了制表符完成。每当我的 Python 程序将制表符传递'\t'
给子进程时,我会在 STDIN 中获得 5 个空格,而不是触发 readline 库的制表符完成例程。:(
问题: 我可以向子进程的 STDIN 发送什么来触发子进程的 tab-complete 功能?也许以另一种方式问:如果可能的话,我如何发送 TAB key而不是 TAB character ?
相关但未得到答复和出轨: