Apa perbedaan antara \ e [38; 5; 175m dan \ [\ e [38; 5; 175m \] sehubungan dengan warna bash?

1

Saya telah mencoba mempelajari cara menyesuaikan shell saya dan saya menemukan dua cara berbeda dalam menentukan warna di shell Bash. Mereka berdua tampaknya mencapai tujuan yang sama dan saya tidak yakin apa perbedaannya (jika ada). Apa yang dilakukan [dan] sekitarnya?

Contoh:

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

Wawasan apa pun akan sangat dihargai.

Terima kasih!

PetarM
sumber
(Juga FYI, \033adalah hal yang sama dengan \e.)
Bavi_H
BTW, saya tidak merekomendasikan penggunaan kode khusus terminal dalam literal - gunakan tputprogram untuk menghasilkan yang tepat untuk terminal yang Anda gunakan, jadi Anda tidak mendapatkan banyak kekacauan ketika asumsi Anda ternyata salah.
Toby Speight

Jawaban:

1

Saya menemukan halaman tentang kustomisasi Bash Prompt yang mengatakan:

Membungkus [urutan pelarian terminal] \[ \]direkomendasikan oleh halaman manual Bash. Ini membantu Bash mengabaikan karakter yang tidak dapat dicetak sehingga ia dengan benar menghitung ukuran prompt.

Bavi_H
sumber
Terima kasih! Ini adalah posting yang sangat lama, jadi minta maaf karena sudah lama menerima jawaban ini! :)
PetarM