PROMPT_COMMAND 是否有任何特殊信息(如上一个命令)?

PROMPT_COMMAND 是否有任何特殊信息(如上一个命令)?

我有兴趣在 中获取刚刚运行的命令PROMPT_COMMAND,除了 之外还有其他更好的方法吗history 1

PROMPT_COMMAND更一般地说,执行时有哪些可用信息?我知道这$?是刚刚运行的命令的退出代码,但我不确定还有什么可用。

答案1

如前所述,将包含执行$!时最后一个命令的退出代码。 PROMPT_COMMANDMatei David 有一个很好的建议,可以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]* *//')

相关内容