As atribuições temporárias de variáveis de ambiente entram em vigor durante a execução do comando, não antes. Em particular, eles ainda não são eficazes durante a análise da linha de comando. Considere os dois comandos a seguir para ilustração:
$ A=1 sh -c "echo $A"
$ A=1 sh -c 'echo $A'
1
A diferença entre os comandos de exemplo é que no primeiro comando as substituições de variáveis acontecem antes sh -c
, e no segundo elas acontecem durante a execução de sh -c
.
Tecnicamente, o shell adiciona as atribuições de variáveis temporárias ao ambiente do processo filho; eles não são adicionados ao ambiente do shell.