Python:获取shell命令的输出'history'

我的最终目标是捕获在terminal中执行的以前的命令。 由于〜/ .bash_history不包含来自当前terminal会话的命令,因此我不能简单地读取该文件。

从另一个线程,我发现这个脚本:

from subprocess import Popen, PIPE, STDOUT shell_command = 'bash -i -c "history -r; history"' event = Popen(shell_command, shell=True, stdin=PIPE, stdout=PIPE, stderr=STDOUT) output = event.communicate() 

这与我正在查找的内容非常接近,但它也不会包含当前terminal会话的历史logging,因为它是作为subprocess启动的。 有什么办法可以在当前shell中执行类似的命令吗?

你为什么不直接读取文件? 〜/ .bash_history的

 for history in open('/home/user/.bash_history'): print(history, end='')