我正在尝试用我的 bash 提示符做两件“高级”的事情。
- 我想显示我上一个命令的状态。我想展示我的
- 当前的 git 分支(如果我在 git repo 中)
我可以分别做这两个,我也可以做'then',但我不能做'then'(这是我想要的)。当我尝试在状态停止工作之前放置时,无论最后一个命令的状态是什么,都保持在相同的状态。/:
我附上我的.bashrc
下面。如您所见,最后两行是两种可能性。注释掉的那个是不起作用的。
.bashrc
:
PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
alias sublime="'/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl'"
alias nano="sublime"
export EDITOR="sublime"
GREEN="\[\e[32;1m\]"
YELLOW="\[\e[33m\]"
RED="\[\e[31m\]"
DEFAULT="\[\e[0m\]"
BRACKETS=$GREEN
HAPPY=$YELLOW
SAD=$RED
BRANCH=$YELLOW
function parse_git_branch () {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
SUCCESS_STR="\`if [ \$? = 0 ]; then echo $HAPPY^_^$DEFAULT; else echo $SAD'O_o'$DEFAULT; fi\`"
# Nice looking bash prompt
PS1="\n$BRACKETS[$DEFAULT\u$BRACKETS]-[$DEFAULT\w$BRACKETS]\n$SUCCESS_STR$BRANCH\$(parse_git_branch) $ "
# PS1="\n$BRACKETS[$DEFAULT\u$BRACKETS]-[$DEFAULT\w$BRANCH\$(parse_git_branch)$BRACKETS]\n$SUCCESS_STR $ "