Esta pergunta já tem uma resposta aqui:
Considere o seguinte comando:
sudo -i bash -c 'A=2; echo "|${A}|"; echo "|$A|";'
Quando executo isso no Debian Linux com bash 4.2.37 e sudo 1.8.5p2 ele imprime:
|2|
|2|
Mas quando eu executo no MacOS High Sierra com bash 3.2.57 e sudo 1.8.17p1 ele imprime:
|2|
||
Por que o $A não é exibido sem as chaves?
Isso não acontece se a opção -i for omitida - os dois 2 serão impressos. E isso não acontece se eu executar apenas bash sem passar por sudo .
Corri para esse comportamento em esta resposta para uma pergunta sobre SO. O respondente está executando o Linux com bash 4.3.48 e sudo 1.8.16 e obtendo a saída ausente. Então, parece que está relacionado à versão sudo (ou talvez algo em /etc/sudoers que o Linux e o Mac têm em comum).