Possible Duplicate:
Why doesn't “cd” work in a bash shell script?
I'm attempting to execute a bash shell script './go_cd' from the UNIX command line in my working directory '/c/My_Objective'. All I expect the script to do is change to a new directory '/c/My_Objective/project'. The script output indicates that the directory has been changed to '/c/My_Objective/project, however when the script completes execution and returns to the current command line, the directory is still at '/c/My_Objective'. Why was the directory not changed?
#!/bin/bash
## current directory is '/c/My_Objective'
pwd
cd project
## new directory should now be '/c/My_Objective/project'
pwd
Is there a way to get the commands, ie., 'cd', executing in the new script process get passed back to the original process where I started 'go_cd' script execution?
Winston
Subprocesses don't affect the parent process. If you want your shell script to modify the existing shell, it has to be run by the existing shell, something like:
. myscript.sh
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With