我正在尝试通过以下方式自定义我的 PS1(我已经删除了颜色):
PS1='\u@\h:\w$(git_branch)$(useExitCode)\$ '
在哪里
git_branch()
{
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
至于退出状态,我想在函数执行前把它捡起来,在. 我怎样才能做到这一点?后一个函数可能如下所示:git_branch
useExitCode
useExitCode()
{
local exitCode=${1}
if [[ ${exitCode} == 0 ]]; then
echo ':)'
else
echo ':('
fi
}
问题是,如何将退出代码存储在 PS1 中并稍后使用?
像下面这样的东西不起作用,但给出了大方向的想法:
PS1='exitCode=$?\u@\h:\w$(git_branch)$(useExitCode ${exitCode})\$ '
上面的回声是“exitCode=0”(或=1)部分,但它没有被存储,所以在稍后的调用“${exitCode}”时它是空的。
我对我的提示做了类似的事情,这就是我如何去“
git
在我的提示中获取分支,同时仍然显示最后一个命令的退出代码”的事情:(经过清理的)结果提示及其在
git
工作区中的外观:这一切的结果是:
git
工作区中,则会显示我当前的分支。绿色表示干净,黄色表示脏,红色表示有暂存文件等待提交$?
.我会为此使用
PROMPT_COMMAND
变量:从
bash(1)
手册页: