混帐回购协议的脏状态,如果我用的git回购运行此命令行1.4.3在命令行中,
git status 2> /dev/null | grep -iw 'modified'
输出我得到
# modified: .rvmrc
,所以我的假设是,如果我插入这在进入if语句我会得到真正的将要执行的代码
行了,但是当我创建函数作为.bash_profile中的一部分,这里是我的代码有:
## Prompt ##
path="$white\w$reset"
folder_name="$white\W$reset"
git_branch="\$(git branch 2>/dev/null | grep -e '\* ' | sed 's/^..\(.*\)/$red(\1)$reset/')"
rvm="$green(\$(~/.rvm/bin/rvm-prompt i v p))$reset"
# Checks if working tree is dirty
function _git_st {
if [[ $(git status 2> /dev/null | grep -iw 'modified') ]]; then
echo "[x]"
fi
}
git_st="$yellow`_git_st`$reset"
PS1="$rvm $folder_name $git_branch $git_st \$ "
X没有回应....我有点失落,不知道我做错了什么。
这是出把我得到:
(ruby-1.9.2-p290) folder-git (master) $ git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: .rvmrc
#
no changes added to commit (use "git add" and/or "git commit -a")
(ruby-1.9.2-p290) folder-git (master) $
另外,你的'_git_st'函数比它需要的复杂一点。 '如果git status 2>/dev/null | grep -qiw'修改';那么'应该工作相同,而不需要捕获输出并检查它是否为空。 – chepner
谢谢@chepner明天我会试试这个。 – GnrlBzik