4

私の最終目標は、ターミナルで実行された前のコマンドをキャプチャすることです。~/.bash_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()

それは私が探しているものにかなり近いですが、サブプロセスとして開始されているため、現在のターミナル セッションの履歴も含まれません。現在のシェルで同様のコマンドを実行する方法はありますか?

4

1 に答える 1

6

ファイルを直接読んでみませんか。 ~/.bash_history

for history in open('/home/user/.bash_history'):
    print(history, end='')
于 2013-08-19T17:32:19.027 に答える