Text in curly { .. } braces subject to expansion (i.e. with at least one ,) is neither consistently expanded nor treated as a literal expression.
echo {*,} behaves as you would expect; it tokenizes akin to echo * with the * being treated as a wildchar globbing character
echo {~/,} behaves differently (imho, incorrectly), acting as if you executed echo '~/' and not like echo ~/
This inconsistent tokenization doesn't make sense and I do not believe it is intentional.
Text in curly
{ .. }braces subject to expansion (i.e. with at least one,) is neither consistently expanded nor treated as a literal expression.echo {*,}behaves as you would expect; it tokenizes akin toecho *with the*being treated as a wildchar globbing characterecho {~/,}behaves differently (imho, incorrectly), acting as if you executedecho '~/'and not likeecho ~/This inconsistent tokenization doesn't make sense and I do not believe it is intentional.