Bash - A variável Shell é promovida para a variável de ambiente no processo bash infantil

1

Pergunta

No Bash, shell_variable = valor bash child_command torna shell_variable uma variável de ambiente no child_command .

Este é um recurso de shell embutido (sh e bash) para promover uma variável de shell para uma variável de ambiente em um processo filho e funciona como um comando env?

Tentando descobrir uma documentação explicando isso, mas não foi possível encontrar ainda. Aprecie se você poderia fornecer uma referência.

hoge.sh

env | grep BUILD_ID

Exemplo 1

BUILD_ID=hoge
bash hoge.sh

[result] (none displayed)

Exemplo 2

BUILD_ID=hoge bash hoge.sh

[Result]
BUILD_ID=hoge

Exemplo 3

env BUILD_ID=hogehoge bash hoge.sh 

[Result]
BUILD_ID=hogehoge

Referência

por mon 05.12.2015 / 16:00

1 resposta

2

POSIX: Seção 2.9.1 Comandos simples

... the variable assignments shall be exported for the execution environment of the command and shall not affect the current execution environment ...

Também em vários manuais de shell (procure por "comandos simples")

Exemplos

Uma variável não afetará o ambiente de execução atual:

$ var=33; var=11 echo "$var"; echo "$var"
33
33

Atribuições variáveis devem ser exportadas para o ambiente de execução:

$ var=33; var=11 sh -c 'echo "$var"'; echo "$var"
11
33
    
por 05.12.2015 / 19:39