好吧,简单的 bash 脚本问题 - 别笑。 我的脚本只是更改目录:
echo on;
echo "running script";
CURRENT_DIR=.;
cd ..;
pwd;
我可以看到它在回显中更改目录,但是当它完成时,我的终端仍然位于同一目录。有什么建议吗?
最佳答案
当您运行 bash
脚本时,它会在自己的 shell 中运行。这意味着它有自己的 shell 环境,包括当前工作目录。如果您在脚本中cd
,该脚本将在新的当前目录中运行。但是当它完成时,您仍然位于用户级 shell 所在的当前目录,因为子 shell 不会触及它。
如果您想影响当前的 shell 环境,一种方法是使用 执行它。
:
. my_script
这类似于运行 sh my_script
但在当前用户 shell 的环境中运行。
关于bash - 为什么这个脚本不改变目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19365337/