Re: bash variable PS1 confuses the terminal somehow

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On Wed, Sep 28, 2011 at 9:22 AM,  <bfsc.yb@xxxxxxxxx> wrote:
> 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?
>

Put \[ and \] around all the sections that don't actually print things
to the terminal, so bash knows not to count them when determining how
long the prompt is.


[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux