alterando o diretório atual do processo filho

alterando o diretório atual do processo filho

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

Responder1

Você não pode.

O ambiente do shell pai é copiado para o processo filho quando o filho é iniciado e, a partir desse ponto, 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 seus pais é enviar uma mensagem aos pais e os pais agirem de acordo com ela:

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"'

informação relacionada