현재 터미널 프롬프트에는 git 정보가 포함되어 있습니다.터미널 프롬프트 용 기본 bash 스크립트
예 클린 디렉터리 : michaelespinosa : ~/사이트/example.com [자식 : 마스터]
예 더러운 디렉토리 : michaelespinosa : ~/사이트/example.com [자식 : 마스터 *]
나는 또한 원하는 자식 정보를 색칠하기 (청결한 경우 녹색) 또는 더러운 경우 빨간색으로.
나는 함수 (parse_git_color)를 추가하고 별표가 있는지 여부에 따라 if 문을 사용하여 색상을 설정할 수 있다고 생각했습니다.
문제는 깨끗한 디렉터리와 오염 된 디렉터리 모두 녹색으로 계속 돌아갑니다. 문제는 if 문과 관련이 있다고 생각합니다. parse_git_dirty == "*"parse_git_dirty의 값을 "*"와 비교합니다.
function parse_git_dirty {
[[ $(git status 2> /dev/null | tail -n1) != "nothing to commit (working directory clean)" ]] && echo "*"
}
function parse_git_color {
if [ parse_git_dirty == "*" ]; then
echo '\033[0;31m\'
else
echo '\033[0;32m\'
fi
}
function parse_git_branch {
git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/$(parse_git_color)[git:\1$(parse_git_dirty)]/"
}
도움을 주시면 감사하겠습니다. 감사합니다.
제안 사항을 업데이트했지만 제대로 작동하지 않았습니다. 나는 ~/Sites/example.com 033 [0; 32m [자식] : michaelespinosa로 끝났습니다. 문제는 if 문과 관련이 있다고 생각합니다. 왜냐하면 문제가 무엇이든 상관없이 반환하기 때문입니다. – michaelespinosa
@michaelespinosa Sry, 제 제안을 테스트하지 않았습니다. 나는 대답을 고쳤다. – sgibb
감사합니다. @sgibb 키가 parse_git_dirty를 "$ (parse_git_dirty)"로 변경 중입니다. – michaelespinosa