¿Cómo organizaría la ejecución de un script de shell en un proceso secundario y al mismo tiempo podría cambiar el directorio actual del shell que lo invoca?
Respuesta1
No puedes.
El entorno del shell principal se copia al proceso hijo cuando se inicia el hijo y, a partir de ese momento, son distintos y completamente separados. El proceso hijo no podrá modificar directamente el entorno del padre.
La única forma en que el niño influye en su padre es enviarle un mensaje y que éste actúe en consecuencia:
eval "$( bash -c 'echo "cd /"' )" # message through command string to stdout
o
# message through USR1 signal triggers predefined action
trap 'cd /' USR1
bash -c 'kill -s USR1 "$PPID"'