GNU/Linux >> Linux Esercitazione >  >> Linux

Dopo aver modificato il .bashrc, ho dei fantasmi nel prompt?

Questa domanda ha già risposte qui :Perché il mio prompt bash viene disturbato quando sfoglio la cronologia? [duplicato]

(2 risposte)
Chiuso 4 anni fa.

Ho aggiunto quanto segue al mio ~/.bashrc :

export PS1="\e[0;35m[\[email protected]\h \W]\$ \e[m "
echo -e "\e[0;35mYOU ARE ON THE LIVE SERVER !!\e[0m"

purtroppo, ora, ogni volta che incollo qualcosa di lungo in bash diventa squiffy e fantasma tab i personaggi appaiono su tutto lo schermo e le linee si mangiano a vicenda, qualcuno sa perché?

Risposta accettata:

In passato ho anche avuto il problema dei codici colore ANSI che incasinavano la navigazione della riga di comando; devi mettere i codici ANSI intorno a \[ \] affinché la shell dei comandi sappia come (non) tenerne conto come parte della stringa di input.

Come in:

export PS1="\[\e[0;35m\][\[email protected]\h \W]\$\[\e[m\] "
echo -e "\[\e[0;35m\]YOU ARE ON THE LIVE SERVER !!\[\e[0m\]"

Qualche spiegazione sul motivo per cui la shell ha bisogno di \[ e \] :Per disegnare il prompt nelle posizioni corrette nella matrice dei caratteri di un terminale, la shell deve conoscere la lunghezza corretta della stringa del prompt che è la quantità di stampabile personaggi, i. e. non controlla i caratteri o le sequenze di caratteri.

Tuttavia, la shell non sa quali sequenze di caratteri il terminale considera stampabili. Pertanto è necessario fornire suggerimenti alla shell per distinguere tra sequenze stampabili e non stampabili, che è lo scopo di \[ e \] .


Linux
  1. Personalizzazione della shell Bash

  2. Precedenza degli operatori logici della shell &&, ||?

  3. Capisci il significato di `$_`?

  4. Cronologia dell'archivio senza uscire dalla shell?

  5. Rigenerare .bashrc dalla shell corrente?

.bashrc vs .bash_profile

Che cos'è la shell in Linux?

Directory corrente abbreviata nel prompt della shell?

È Shell Portable eseguire un comando sulla stessa riga dopo l'assegnazione di variabili?

Il ciclo while negli script della shell

SELinux nel mondo reale