GNU/Linux >> Belajar Linux >  >> Linux

Setelah Saya Mengedit .bashrc Saya Mendapat Hantu Di Prompt?

Pertanyaan ini sudah memiliki jawaban di sini :Mengapa bash Prompt saya disadap ketika saya menelusuri riwayat? [duplikat]

(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 \] .


Linux
  1. Diutamakan Operator Logika Shell &&, ||?

  2. Riwayat Arsip Tanpa Keluar dari Shell?

  3. Regenerasi .bashrc Dari Shell Saat Ini?

  1. Menyesuaikan shell Bash

  2. Inti Dari Perintah Eksternal `cd`?

  3. Arti dari $? Dalam Skrip Shell?

  1. Kekuatan (Shell) untuk orang-orang

  2. Tujuan .bashrc Dan Bagaimana Cara Kerjanya?

  3. Mengapa Bashrc Memeriksa Apakah Shell Saat Ini Interaktif?