我正在用Python(在Ubuntu中)编写一个终端程序,与Bash的通信工作正常。
我使用以下命令打开要Bash的管道:
self.process = subprocess.Popen(['/bin/bash'], shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
我有处理stdout和stderr数据的独立线程,我可以向stdin发送命令。我唯一做不到的事情是,当命令完成时,我从Bash收到一个命令提示符。在
例如,如果我在一个Ubuntu终端中列出目录内容,那么输出是:
在cyw@cyw VirtualBox:~/testdir$ls-l
总计0
-rw-rw-r--1周中0 12月1日15:55文件1
-rw-rw-r--1周中0 12月1日15:55文件2
-rw-rw-r--1周中0 12月1日15:55文件3
cyw@cyw VirtualBox:~/testdir$
Python终端中的相同输出如下:
ls-l
-rw-rw-r--1周中0 12月1日15:55文件1
-rw-rw-r--1周中0 12月1日15:55文件2
-rw-rw-r--1年12月0日15:55文件3
我在Google上的搜索大多建议编辑$PS1变量,但我不认为这是问题所在。如果没有命令提示符,我的终端将很难使用。任何帮助都将不胜感激。在
在PS1的交互模式下运行bash:
您的
bash
不是交互式的。在来自^{} :
相关问题 更多 >
编程相关推荐