先ほど実行したコマンドを受け取りたいですPROMPT_COMMAND
。これより良い方法はありますかhistory 1
?
PROMPT_COMMAND
より一般的に実行時にどの情報を使用できますか?これが実行したばかりのコマンドの終了コードであることを知っていますが、$?
他のコードが何であるかはわかりません。
ベストアンサー1
前述のように、$!
最後に実行されたコマンドの終了コードが含まれています。 Matei Davidは、以下を実行しても環境に何も追加されないことを(私のシステムで)示すPROMPT_COMMAND
素晴らしい提案をしました。set
PROMPT_COMMAND
$ PROMPT_COMMAND="set > /tmp/prompt.log"
$ set > /tmp/basic.log
$ diff -u0 /tmp/basic.log /tmp/prompt.log
# no results
もちろん、これは逸話的で、Bash魔法変数や含まれていない他の状態を含まないが、始まりset
に過ぎません。
以下を使用して最後のコマンドを取得できます。
last_command=$(HISTTIMEFORMAT='' history 1 | sed 's/ *[0-9]* *//')