Como um processo altera a variável de ambiente de seu processo pai?

1

Tome cd como exemplo. Além disso, é cd que me lembra dessa questão. Quando inserimos "cd" e pressionamos enter em um terminal, um processo filho cd do terminal é iniciado e, na minha cabeça, todas as coisas sobre cd são executadas no processo filho cd . Para meu intrigante, como poderia cd alterar a variável de ambiente de seu processo pai?

    
por user3872279 10.08.2014 / 05:35

1 resposta

3

cd não está fazendo nenhuma alteração em seu processo pai, porque cd não é um processo.

É um shell embutido - uma construção que a maioria (cada?) shell tem que mudar seu contexto de diretório.

cd no bash mudará seu cwd no bash. cd on zsh fará o mesmo em zsh. É o bash / zsh que está fazendo isso. E eles estão mudando seu próprio contexto.

Dito isto, não acho que seja possível que um processo filho altere o ambiente dos seus pais. deve ser teoricamente possível acessando diretamente a memória, mas estou assumindo que estamos falando de cenários da vida real: -)

    
por 10.08.2014 / 05:51