I decided to play around with the ${var@P} expansion in 4.4-beta.

imadev:~$ red=$(tput setaf 1) reset=$(tput sgr0) 
x='\[$red\]\u\[$reset\]@\h:\w\$ '; printf %s "${x@P}" | od -t x1
0000000    1  1b  5b  33  31  6d   2  77  6f  6f  6c  65  64  67   1  1b
0000020   5b  6d   f   2  40  69  6d  61  64  65  76  3a  7e  24  20
0000037

I don't think the "1" and "2" bytes should be printed.  They're for
internal use only, even if they're usually invisible.

imadev:~$ printf %s "$red" | od -t x1
0000000   1b  5b  33  31  6d
0000005
imadev:~$ printf %s "$reset" | od -t x1
0000000   1b  5b  6d   f
0000004

Reply via email to