Was ist der Unterschied zwischen \e[38;5;175m und \[\e[38;5;175m\] in Bezug auf Bash-Farben?

Was ist der Unterschied zwischen \e[38;5;175m und \[\e[38;5;175m\] in Bezug auf Bash-Farben?

Ich habe versucht, herauszufinden, wie ich meine Shell anpassen kann, und bin dabei auf zwei verschiedene Möglichkeiten gestoßen, Farben in der Bash-Shell anzugeben. Beide scheinen dasselbe Ziel zu erreichen, und ich bin mir nicht sicher, was (falls überhaupt) der Unterschied ist. Was bewirken die umgebenden [ und ]?

Beispiel:

# colors!
red="\e[38;5;196m"
lightMagenta="\[\e[38;5;175m\]"
reset="\[\033[0m\]"

# Change command prompt
source ~/git-prompt.sh
export GIT_PS1_SHOWDIRTYSTATE=1
export PS1="$lightMagenta\u@\h$green\$(__git_ps1)$red \W $ $reset"

Ich wäre für jede Einsicht sehr dankbar.

Danke schön!

Antwort1

Ich fand eine Seite überBash-Prompt-Anpassungdas sagt:

Auf der Bash-Manpage wird empfohlen , [Terminal-Escape-Sequenzen] einzuschließen \[ \]. Dadurch kann Bash nicht druckbare Zeichen ignorieren und die Größe der Eingabeaufforderung korrekt berechnen.

verwandte Informationen