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

Dwight Schauer dschauer at gmail.com
Wed Sep 28 14:37:56 EDT 2011


On Wed, Sep 28, 2011 at 9:46 AM, 清显 <bfsc.yb at gmail.com> 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]\$\]
> 21 '
>
>  i changed PROMPT_COMMAND to this as you said, it fixes what i mentioned earlier, but produces more problem, like when i type one character and then use BACKSPACE to delete it, the entire promt is gone, and again bring me to the begining of the line, also when i use ^R to search for history command, the prompt is destroyed too...
>

I do something similar, but I don't change PS1 in the prompt command.
My prompt does end up on two lines, but when I'm in a long path at
least the command edit area stays large.

PS1='\[\e[1;32m\]\u\[\e[1;33m\]@\h\[\e[0m\] \$ '
PROMPT_COMMAND='echo -e "\e[1;36m$(date "+%a %d%b%y %H:%M:%S")
\e[1;33m${PWD/${HOME}/~}\e[0m"


More information about the arch-general mailing list