My version: ~⦒zsh --version           ▮▮▮▮▮▮▯▯▯▯ 17:26:13 zsh 5.9 (x86_64-pc-linux-gnu) I am trying out variations suggested here: https://unix.stackexchange.com/questions/408867/how-to-colorize-some-of-the-output-of-a-shell-script and am confused. One of the last (I expect ideal) suggestions is: % text=xyz % |printf '%s\n' "${(%):-%F{green}}$text${(%):-%f}"| | | |When I try it:| |~⦒printf '%s\n' "${(%):-%F{blue}}test${(%):-%f}" ▮▮▮▮▮▯▯▯▯▯ 17:33:45 }test| |I have a trailing `}' which I think I should not see.| |If I split this up,| |~⦒printf '%s.%s.%s\n' "${(%):-%F{blue}}" "test" "${(%):-%f}"               ▮▮▮▮▮▯▯▯▯▯ 17:35:41 }.test. ~⦒printf '%s.%s.%s\n' "${(%):-%F{blue}}${(%):-%B}" "test" "${(%):-%b}${(%):-%f}" }*.test.*| || |same result.  The extra parenthesis, but the %B/%b print codes worked as expected. | |If my reading of the zsh man pages is correct, this one should be identical to the last one above, | |~⦒printf '%s.%s.%s\n' "${(%):-%F{blue}%B}" "test" "${(%):-%b}${(%):-%f}" %B}.test. | |Instead I get the above `%B}' in the output.| | | |What would I be missing?| | | |Curious,| | | |Kannan |