(9 risposte)
Chiuso 3 anni fa.
Spesso, quando inizio a guardare la cronologia dei comandi, alcuni dei caratteri di un comando visualizzato non vengono cancellati, ad esempio:
Cosa sta succedendo:
prompt$ some_command
prompt$ some_commanother_command
Cosa sarebbe dovuto succedere:
prompt$ some_command
prompt$ another_command
Non riesco a cancellare quei caratteri e bash li ignora durante l'esecuzione del comando. Scompaiono anche quando viene visualizzato un nuovo prompt (dopo aver premuto Enter
per esempio).
Ho chiesto ad altre persone che lavorano su Linux nel mio posto di lavoro e hanno detto che anche loro hanno questo problema a volte, ma non avevano idea di come risolverlo.
Ho Ubuntu 11.10 e sto usando guake. Ecco il mio PS1
:
e[0;31mu A ${PWD##*/}e[0;32m$(parse_git_branch)e[0;31m$e[m
dove parse_git_branch
è
parse_git_branch () {
git name-rev HEAD 2> /dev/null | sed 's#HEAD (.*)# (1)#'
}
Per quanto ne so i miei colleghi hanno quel problema anche con PS1 meno "fantasiosa".
Risposta accettata:
Usa [...]
intorno alle parti di PS1 che hanno lunghezza 0. Aiuta bash a ottenere la lunghezza del prompt corretta. Anche con questa misura, la tua riga di comando può essere rovinata quando usi caratteri multibyte (almeno il mio lo fa). Premi Ctrl+L aiuta anche in questi casi (ma allo stesso tempo cancella lo schermo).