Não consigo obter um JSON vazio {}
para ecoar se estiver faltando um envvar. Ou tenho um rastro }
na saída, se definido, ou a fuga é exibida.
bash-3.2$ unset X
bash-3.2$ echo "${X:-{}}"
{}
bash-3.2$ X=y
bash-3.2$ echo "${X:-{}}"
y}
bash-3.2$ echo "${X:-{\}}"
y
bash-3.2$ unset X
bash-3.2$ echo "${X:-{\}}"
{\}
bash-3.2$ echo "${X:-'{}'}"
'{}'
bash-3.2$ X=z
bash-3.2$ echo "${X:-'{}'}"
z
Como faço para escapar corretamente?
@SergiyKolodyazhnyy Isso foi corrigido no 4.2; Lembro-me de uma discussão sobre a citação de expansões de palavras, seguindo operadores de expansão de parâmetros para estar em conformidade com o padrão POSIX.
—
Chepner #
echo "${X:-{\}}"
funcionou muito bem.