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