mudando o diretório atual do processo filho [duplicado]

0

Como você organizaria um script de shell a ser executado em um processo filho, enquanto ainda seria capaz de alterar o diretório atual do shell de chamada?

    
por Ms.Sahin 25.05.2017 / 00:49

1 resposta

1

Você não pode.

O ambiente do shell pai é copiado para o processo filho quando o filho é iniciado e, a partir daí, eles são distintos e totalmente separados. O processo filho não poderá modificar diretamente o ambiente do pai.

A única maneira de a criança influenciar seu pai é enviar uma mensagem para o pai e para o pai agir:

eval "$( bash -c 'echo "cd /"' )"  # message through command string to stdout

ou

# message through USR1 signal triggers predefined action

trap 'cd /' USR1
bash -c 'kill -s USR1 "$PPID"'
    
por 25.05.2017 / 00:59