我有兴趣在 中获取刚刚运行的命令PROMPT_COMMAND
,除了 之外还有其他更好的方法吗history 1
?
PROMPT_COMMAND
更一般地说,执行时有哪些可用信息?我知道这$?
是刚刚运行的命令的退出代码,但我不确定还有什么可用。
答案1
如前所述,将包含执行$!
时最后一个命令的退出代码。 PROMPT_COMMAND
Matei 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]* *//')