Por que preciso de chaves ao usar uma variável em algumas versões do sudo -i? [duplicado]

4
    

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

    
por Barmar 10.07.2018 / 18:59

0 respostas