我编写了一个 bash 脚本,将 git 信息放入我的 bash 提示符中,同时仍将终端的密码保留在标题栏中,以允许在当前工作目录中打开新选项卡。一切运行良好,只是当我创建新选项卡时,原始选项卡中的 it 信息会被清除,直到我单击 Enter 刷新它。
以下是我的完整.bash_profile
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
function git_prompt() {
local status=`git status 2>&1`
if ! [[ $status =~ "Not a git repository" ]]; then
# get the current branch
local branch=`git branch | ack -o '(?<=\* ).*'`
# set the color according to the status of the git repo
if [[ $status =~ "nothing to commit" ]]; then
local color=42
elif [[ $status =~ "nothing added to commit but untracked files present" ]]; then
local color=43
else
local color=45
fi
echo -ne "\033["$color"m"$branch"\033[49m "
fi
}
function my_prompt() {
## PWD IN TITLE FOR NEW TAB LOCATION DETECTION
update_terminal_cwd
## GIT BRANCH AND STATUS DISPLAY
git_prompt
}
## SETTINGS ############################################################
########################################################################
# custom bash prompt
PS1='\[\e[1;34m\]\W \$\[\e[0m\] '
# scripts that need to be run before display of bash prompt
PROMPT_COMMAND=my_prompt
答案1
发生这种情况基本上是因为在加载时~/.bashrc
它没有考虑正确包含~/.bash_profile
只需将这些行附加到您的末尾~/.bashrc
,它就会产生神奇的效果。
if [ -f ~/.bash_profile ]; then
. ~/.bash_profile
fi
对我来说很有效:)