Benutzerdefinierte Bash-Eingabeaufforderung überschreibt sich selbst
Ich verwende eine benutzerdefinierte Bash-Eingabeaufforderung, um den Git-Zweig anzuzeigen.
Alles ist in/etc/bash/bashrc
:
function formattedGitBranch {
_branch="$(git branch 2>/dev/null | sed -e "/^\s/d" -e "s/^\*\s//")"
# tried these:
echo -e "\e[0;91m ($_branch)"
echo -e "\e[0;91m ($_branch) \e[m"
echo -e Problem ist das, wenn ich Farbe für einstelle$_branch
In der Funktion wird meine Eingabeaufforderung überschrieben, wenn EOL erreicht ist:
Versuchte alle möglichen Variantentput
, printf
, $''
Notation.
Ich habe das Problem gelöst, indem ich die Farbe nur in eingestellt habePS1
:
Aber..
Ich möchte wissen, warum meine Eingabeaufforderung überschrieben wirdBehebung dieses Problems bei Verwendung der FunktionIch benutze Gentoo Linux.GNU bash, verze 4.2.37(1)-release (i686-pc-linux-gnu)
\e[0;91m'"($_branch)"
echo "($_branch)"
echo "$(tput setaf 2) ($_branch) $(tput setaf 9)"
printf "\e[0;91m ($_branch)"
}
# color is set before function call
PS1='\[\033[01;34m\] \[\033[0;91m\]$(formattedGitBranch) \$\[\033[00m\] '
# color is set inside function
PS1='\[\033[01;34m\] $(formattedGitBranch) \$\[\033[00m\] '
Problem ist das, wenn ich Farbe für einstelle$_branch
In der Funktion wird meine Eingabeaufforderung überschrieben, wenn EOL erreicht ist:
Versuchte alle möglichen Variantentput
, printf
, $''
Notation.
Ich habe das Problem gelöst, indem ich die Farbe nur in eingestellt habePS1
:
Aber..
Ich möchte wissen, warum meine Eingabeaufforderung überschrieben wirdBehebung dieses Problems bei Verwendung der FunktionIch benutze Gentoo Linux.GNU bash, verze 4.2.37(1)-release (i686-pc-linux-gnu)