PROMPT_COMMANDに特別な情報があります(以前のコマンドなど)。

PROMPT_COMMANDに特別な情報があります(以前のコマンドなど)。

先ほど実行したコマンドを受け取りたいですPROMPT_COMMAND。これより良い方法はありますかhistory 1

PROMPT_COMMANDより一般的に実行時にどの情報を使用できますか?これが実行したばかりのコマンドの終了コードであることを知っていますが、$?他のコードが何であるかはわかりません。

ベストアンサー1

前述のように、$!最後に実行されたコマンドの終了コードが含まれています。 Matei Davidは、以下を実行しても環境に何も追加されないことを(私のシステムで)示すPROMPT_COMMAND素晴らしい提案をしました。setPROMPT_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]* *//')

おすすめ記事