cada vez que se ejecuta un guión del intérprete de comandos de inicio de sesión, un nuevo subproceso se genera y la ejecución del script se realiza en un subshell.Once completa el guión, las salidas subshell y volverá a la shell.Hence de inicio de sesión cada vez que haces un CD a través de una secuencia de comandos, el directorio cambia a la ruta especificada por cd, pero cuando termina la secuencia de comandos, vuelve a su shell de inicio de sesión al directorio de trabajo desde donde comenzó la secuencia de comandos.
La manera de superar esto es el uso,
source yourscript.sh
qué fuente hace es que ejecuta la secuencia de comandos como un script TCL, es decir, tiene el mismo efecto que al escribir cada línea en la línea de comandos del inicio de sesión shell y se ejecuta desde allí. De esta forma, cuando el script finaliza después de cd, permanece en ese directorio.
Realizo algunos cambios en el código de muestra. En bash, ** cd ** sholud do en alias o función. – qrtt1
similares: [? ¿Por qué no "cd" trabajo en una secuencia de comandos shell bash "] (http://stackoverflow.com/questions/255414/why-doesnt-cd-work-in-a-bash-shell-script .) –