Bash shell script run on UNIX command line, does not change current shell environment
Possible duplicate:
Why doesn't "cd" work in a bash shell script?
I am trying to execute ./go_cd bash shell from UNIX command line in my working directory '/ c / My_Objective'. All I expect from the script is to change to the 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 finishes executing and returns to the current command line, the directory is still in '/ c / My_Objective'. Why hasn't the directory changed?
Below is a simple bash shell script that I am using as a test.
#!/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, i.e., 'cd' executed in the new process script, to get back to the original process where I started the 'go_cd' script execution?
Winston
Subprocesses do not affect the parent process. If you want your shell script to modify an existing shell, it must be started by an existing shell, for example:
. myscript.sh