[arch-general] bash variable PS1 confuses the terminal somehow

bfsc.yb at gmail.com bfsc.yb at gmail.com
Wed Sep 28 09:22:32 EDT 2011


13 PROMPT_COMMAND='
14         if (($?)); then
15                 warn="^[[31mWARNING^[[m"
16         else
17                 warn=
18         fi
19         date=`date`
20         PS1="^[[s^[[$(($COLUMNS-28))C^[[0;33m$date^[[u^[[0;31m$warn^[[0;32m[^[[1;33m\u^[[0;32m@^[[1;36m\w^[[0;32m]\$^[[m"
21 '

  i'm using this PROMPT_COMMAND to set PS1 everytime it is played, it seems to work perfectly except later i found a strange behavior of the terminal, both in xterm under X and agetty under the console. for example, when under the console, i found the terminal column indicated by the bash variable $COLUMNS is 160, however, when i type some command about 50 characters long, the line which i'm typing wraps to the begining, and destroys what i typed earlier, this makes typing long commands really difficult...and everything is just fine when i just set the PS1 variable to a very simple value without escape sequences.
  anyone knows how to fix this?


More information about the arch-general mailing list