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).