我不清楚GNU readline()如何实现上/下箭头键,以及与终端的实际交互在何处进行支持。基本上,我试图获取向上/向下箭头键和颜色输出以在Docker中运行的程序的调试器中工作。整个系统是一个集群提交环境,还支持本地执行。因此,启动过程有些人为设计,因为它会将标准输出转发到各个地方,并且需要设置相当复杂的信号处理程序。
更准确地说,启动过程如下:
请注意,步骤(1)和(2)始终通过exec()移至下一步。
Python解释器的stdin和stdout都是通向C程序的管道。 C程序将任何东西从stdin转发到管道,而将任何东西从它转发到stdout的管道以及各种日志文件/服务转发出去。
现在,如果我在Python脚本中启动调试器。它可以正常工作,只是箭头键不起作用。我的理解是,这是通过GNU readline()处理的,但是对于我来说,尚不清楚要使上下键正常工作需要做什么。
是bash处理终端的输出格式吗?由于我在Docker入口点shell脚本中执行了C程序,因此不再运行bash解释器。
有人知道如何解决这个问题吗?
编辑:我目前将TERM,COLORTERM和SHELL环境变量的值从主机以及LS_COLORS转移到主机的python程序中。