好的简单bash脚本问题 - 不要笑。 我的脚本只是更改了目录:
echo on;
echo "running script";
CURRENT_DIR=.;
cd ..;
pwd;
我可以在echo中看到它更改目录但是当它完成时,我的终端仍在同一目录下。有什么提示吗?
答案 0 :(得分:5)
运行bash
脚本时,它会在自己的shell中运行。这意味着它拥有自己的shell环境,包括当前工作目录。如果您在脚本中cd
,那么该脚本将在该新的当前目录中运行。但是当它完成后,你仍然在你的用户级shell所在的当前目录中,因为子shell没有触及它。
如果您想影响当前的shell环境,一种方法是使用.
执行它:
. my_script
这就像运行sh my_script
,但在当前用户shell的环境中运行。