(2 jawaban)
Tutup 4 tahun yang lalu.
Saya menambahkan yang berikut ini ke ~/.bashrc
saya :
export PS1="\e[0;35m[\[email protected]\h \W]\$ \e[m "
echo -e "\e[0;35mYOU ARE ON THE LIVE SERVER !!\e[0m"
sayangnya, sekarang, setiap kali saya menempelkan sesuatu yang lama ke bash, itu menjadi squiffy dan ghost tab
karakter muncul di seluruh layar, dan garis saling memakan, adakah yang tahu mengapa?
Jawaban yang Diterima:
Saya juga pernah mengalami masalah kode warna ANSI yang mengacaukan navigasi baris perintah; anda perlu meletakkan kode ANSI di sekitar \[ \]
agar shell perintah mengetahui bagaimana (tidak) memperhitungkannya sebagai bagian dari string input.
Seperti dalam:
export PS1="\[\e[0;35m\][\[email protected]\h \W]\$\[\e[m\] "
echo -e "\[\e[0;35m\]YOU ARE ON THE LIVE SERVER !!\[\e[0m\]"
Beberapa penjelasan mengapa shell membutuhkan \[
dan \]
:Untuk menggambar prompt pada posisi yang benar dalam matriks karakter terminal, shell perlu mengetahui panjang yang benar dari string prompt yang merupakan jumlah dapat dicetak karakter, saya. e. tidak mengontrol karakter atau urutan karakter.
Namun, shell tidak tahu urutan karakter mana yang dianggap dapat dicetak oleh terminal. Oleh karena itu seseorang perlu memberikan petunjuk ke shell untuk membedakan antara urutan yang dapat dicetak dan tidak dapat dicetak, yang merupakan tujuan dari \[
dan \]
.