2017-06-28 4 views
0

私は、子プロセス(実行可能にする)からbashターミナルからプログラムで履歴を取得しようとしています。私は基本的に端末が実行した最後のN個のコマンドを探しています。親端末で最後に実行されたコマンドをフェッチすることはできますか?

フロー:

  1. オープンbashの端子PID = 5
  2. 実行がPID = 32 PPID = 5
  3. がコマンドをフェッチ実行行く(GPG、sedは、rpm)でいくつかのコマンドを実行し、親プロセス(bash端末)からのパラメータ(sed、rpm、gpg)を入力して印刷する

bash内蔵historyは、外出/外出時に走るときの大人たち。

~/.bash_historyは、プロンプトが閉じられたときにbash端末からの履歴が書き込まれるため、正確ではありません。

これはまったく可能ですか?

+0

このリンクはhttps://unix.stackexchange.com/questions/147563/how-do-i-repeat-the-last-command-without-using-the-arrow-keysに役立ちます – amrit

+0

セット 'PROMPT_COMMAND = ' export last_command = "!!" ''し、' last_command'環境変数を使用してください。注:これが安全なメカニズムであるかどうかは分かりませんが、w.r.t.シェルインジェクション... – anishsane

答えて

1

hereのように、新しいコマンドをhistory -a <file_path>というファイルに保存すると、子プロセスでファイルの最後のN行(tail -n <N>)を読み取ることができます。

+0

この回答を使ってbashrcで終わりました。 – rvk

関連する問題