cambiar el directorio actual del proceso secundario

cambiar el directorio actual del proceso secundario

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

información relacionada