Estou tentando obter um literal }
na saída da ${parameter:?word}
expansão em zsh
.
No bash, funciona conforme o esperado - posso citar o }
com um \
:
% bash
$ echo "${unset_var_name?Here is a close brace >>\}<<}"
bash: unset_var_name: Here is a close brace >>}<<
Mas não consigo descobrir como fazer o mesmo no zsh:
% zsh
% echo "${unset_var_name?Here is a close brace >>\}<<}"
zsh: unset_var_name: Here is a close brace >>\}<<
Observe que o \
aparece literalmente acima.
Sim, isso, e o fato de
$var2
não ser expandido, por exemplo,${var1?$var2}
foi um desvio desnecessário e infeliz de todos os outros shells e da especificação POSIX desh
e foi corrigido no zsh em fevereiro de 2023 , portanto, estará disponível no próximo lançamento, seja 5.10 ou 6.0.