我正在尝试从我的工作目录'/ c / My_Objective'中的UNIX命令行执行bash shell脚本'./go_cd'。我希望脚本所做的就是更改为新目录'/ c / My_Objective / project'。脚本输出表明目录已更改为'/ c / My_Objective / project,但是当脚本完成执行并返回到当前命令行时,目录仍处于'/ c / My_Objective'。为什么目录没有改变?
#!/bin/bash
## current directory is '/c/My_Objective'
pwd
cd project
## new directory should now be '/c/My_Objective/project'
pwd
有没有办法获取命令,即'cd',在新脚本进程中执行会被传递回原始进程,在那里我开始'go_cd'脚本执行?
温斯顿
答案 0 :(得分:6)
子进程不会影响父进程。如果希望shell脚本修改现有shell,则必须由现有shell运行,如:
. myscript.sh