Моя конечная цель - захватить предыдущую команду, выполненную в терминале. Поскольку ~/.bash_history не включает команды текущего сеанса терминала, я не могу просто прочитать этот файл.Python: получить команду оболочки 'history'
Из другого потока, я нашел этот скрипт:
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()
Это довольно близко к тому, что я ищу, но он также не будет включать в себя историю из текущего сеанса терминала, так как это началось как подпроцесс , Есть ли способ выполнить аналогичную команду в текущей оболочке?
'history' не является исполняемым, это встроенная команда оболочки. – geoffspear
Отметьте [вопрос о том, как запустить встроенные встроенные башки] (http://stackoverflow.com/questions/5460923/run-bash-built-in-commands-in-python) –