繁体   English   中英

在bash提示符中捕获上一条命令的退出值

[英]Capturing exit value of previous command in bash prompt

如何在bash提示符中捕获上一个命令的退出值? 我想这样做是因为我也想在路径中包括当前的git分支,并且这会改变$?

我已经在下面的提示中尝试了很多变体(例如,对RETVAL的赋值周围的`,`和$()),但是RETVAL在所有提示中均为空:

PS1="\$(RETVAL=$(echo \$))\$(cd 124123)retval: $RETVAL"

里面的cd命令只是对git current分支函数的调用的占位符,之后我回显RETVAL(这始终是一个空字符串,以测试是否被分配了。

其他类似/相关的问题:

我也曾尝试使用类似这些页面上的示例在提示命令中设置RETVAL,但提示中没有任何显示

使一个函数生成您的提示,并保存$?

makeprompt() { 
    status=$?
    echo "$(echo someoutput) $status"
    return $status
}

PS1='$(makeprompt) \$ '

这将为您提供命令的输出(此处为echo ,但可以为git )以及先前执行的命令的退出状态。

来自bash(1)

PROMPT_COMMAND
  If set, the value is executed as a command  
  prior  to  issuing  each  primary prompt.

使用它代替PS1。 在分配时,您对PS1的分配会扩展一次,但不会在每次显示提示时扩展。 是的,当将其浸入水中时,会进行一些扩展,但是它受到限制(并且使用-style替代“变量”-再次参见bash(1))。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM