Reputation: 2753
My end goal is capture the previous command executed in the terminal. Since ~/.bash_history doesn't include commands from the current terminal session, I can't simply read that file.
From another thread, I found this script:
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()
That's pretty close to what I'm looking for, but it also will not include the history from the current terminal session since it's started as a subprocess. Is there any way to execute a similar command in the current shell?
Upvotes: 5
Views: 4102
Reputation: 1872
why don't you read the file directly. ~/.bash_history
for history in open('/home/user/.bash_history'):
print(history, end='')
Upvotes: 6