Wait, how do you “cd to it” from within the script? Doesn’t exiting the script take you back to where you were?
For cases where you need to modify your current environment (setting environment variables, changing directories, etc), you need to run the script using the "source" built-in. That will execute the script in the current shell rather than a sub-shell.
So instead of
./some-script.sh
you'd run source some-script.sh
or use the dot (".") shorthand . some-script.sh
In cases where I need to source a script, I generally create an alias or a shell function for it. Otherwise I may forget to source it.It’s more like “roll your own oh-my-zsh”