Seu entendimento atual de "variáveis deve ser exportado para o ambiente para que uma criança possa herdá-las de um pai" parece correto para mim.
Os processos diferentes de um shell possuem variáveis de ambiente, a interface de linguagem C para isso é getenv()
e setenv()
, de stdlib.h
. Os shells do sistema operacional Unix, Linux e * BSD apenas fazem com que variáveis de ambiente pareçam variáveis de shell comuns e não herdadas.
Então, acho que a resposta à sua pergunta específica é: somente as variáveis do shell que são exportadas para o ambiente do shell aparecem no ambiente de um processo filho.