Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
好的简单的 bash 脚本问题 - 不要笑。我的脚本只是更改目录:
echo on; echo "running script"; CURRENT_DIR=.; cd ..; pwd;
我可以看到它在 echo 中更改了目录,但是当它完成时,我的终端仍然在同一目录中。有小费吗?
当您运行bash脚本时,它会在自己的 shell 中运行。这意味着它有自己的 shell 环境,包括当前工作目录。如果您cd在脚本中,则该脚本将在该新的当前目录中运行。但是当它完成时,您仍然在您的用户级 shell 所在的当前目录中,因为子 shell 不会触及它。
bash
cd
如果你想影响当前的 shell 环境,一种方法是执行它.:
.
. my_script
这就像运行sh my_script,但在您当前用户 shell 的环境中运行。
sh my_script