我一直在尝试自定义我的 bash 提示符
下面是我的配置
#!bin/bash
Nocolor="\[\033[0m\]" # Text Reset
# Bold High Intensty
BIBlack="\[\033[1;90m\]" # Black
BIRed="\[\033[1;91m\]" # Red
BIGreen="\[\033[1;92m\]" # Green
BIYellow="\[\033[1;93m\]" # Yellow
BIBlue="\[\033[1;94m\]" # Blue
BIPurple="\[\033[1;95m\]" # Purple
BICyan="\[\033[1;96m\]" # Cyan
BIWhite="\[\033[1;97m\]" # White
function git_color {
local git_status="$(git status 2> /dev/null)"
if [[ $git_status =~ "Changes not staged for commit" ]]; then
echo -e $BIRed
elif [[ $git_status =~ "Changes to be committed" ]]; then
echo -e $BIYellow
else
echo -e $BIGreen
fi
}
PS1="\u\[$BIRed\]\W"
PS1+="\$(git_color) $ "
PS1+="\[$Nocolor\]"
export PS1
我要做的是根据我的 git 状态用特定颜色突出显示我的 $ 符号
这\[\]来自哪里。我尝试了所有可能的方法来调用方法 git_status 但没有任何效果。
我的 Bash 版本
bash --version
GNU bash, version 5.0.3(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
帮帮我。提前致谢。
不要直接在 PS1 中包含
\[
或\]
其他任何地方,这样您就不必跟踪扩展和解释的位置。我还添加
-n
了回声,但它不应该有所作为。\[\]
有人发布了从颜色代码中删除的答案。后来他/她删除了答案。谢谢你的建议它有效我已经
"\[\033[0m\]"
改为"\033[0m"
有效。感谢您的回答