Qual é a diferença entre \ e [38; 5; 175m e \ [\ e [38; 5; 175m \] no que se refere às cores bash?

1

Eu tenho tentado aprender como personalizar meu shell e me deparei com duas maneiras diferentes de especificar cores no shell Bash. Ambos parecem realizar o mesmo objetivo e não tenho certeza do que (se houver) é a diferença. O que o entorno [e] faz?

Exemplo:

# 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"

Qualquer insight seria muito apreciado.

Obrigado!

PetarM
fonte
(Também FYI, \033 é a mesma coisa que \e.)
Bavi_H
BTW, eu não recomendo o uso de códigos específicos do terminal em literais - use o tput programa para gerar os corretos para o terminal que você está usando, para que você não tenha muita confusão quando suas suposições acabarem erradas.
Toby Speight

Respostas:

1

Eu encontrei uma página sobre Personalização Prompt Bash isso diz:

Embrulhando [seqüências de escape terminal] em \[ \] é recomendado pela página man Bash. Isso ajuda Bash a ignorar os caracteres não imprimíveis para que calcule corretamente o tamanho do prompt.

Bavi_H
fonte
Obrigado! Este é um post muito antigo, então peço desculpas por demorar tanto para aceitar essa resposta! :)
PetarM