help-bash
[Top][All Lists]
Advanced

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

Re: [Help-bash] `read -e -p`, colors, and invisible chars


From: Chet Ramey
Subject: Re: [Help-bash] `read -e -p`, colors, and invisible chars
Date: Wed, 26 Aug 2015 22:04:41 -0400
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Thunderbird/38.2.0

On 8/26/15 9:01 PM, Mike Frysinger wrote:
> my desire is simple:
>   show a custom colorized prompt when reading input and leverage readline
>   (for editing & history)
> 
> the `read` builtin almost gets me there:
>  - the -p flag allows you to specify a custom prompt
>  - the -e flag uses readline for input
> 
> however, the -p flag does not parse escape sequences.  np, just expand
> that myself ahead of time using `printf %b`.  simple example:
>   prompt=$(printf '%bfoo>%b ' '\033[1;33m' '\033[0m')
>   read -e -p "${prompt}"
> 
> now i hit the classic invisible char problem when readline tries to
> redraw the prompt (just hold up on the arrow key to draw many lines
> from your history).  normally i'd leverage \[ and \], but bash does
> not seem to support that w/the read builtin -- they get rendered in
> the output directly instead of being consumed.
>   $ prompt=$(printf '%bfoo>%b ' '\[\033[1;33m\]' '\[\033[0m\]')
>   $ read -e -p "${prompt}"
>   \[\]foo>\[\] 
> (yes, moving the \[ and \] to the printf string yields same behavior)

https://lists.gnu.org/archive/html/bug-bash/2015-08/msg00025.html

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU    address@hidden    http://cnswww.cns.cwru.edu/~chet/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]