好的简单的bash脚本问题 - 不要笑.我的脚本只是更改目录:
echo on;
echo "running script";
CURRENT_DIR=.;
cd ..;
pwd;
Run Code Online (Sandbox Code Playgroud)
我可以在echo中看到它更改目录但是当它完成时,我的终端仍在同一目录下.有小费吗?
运行bash脚本时,它在自己的shell中运行.这意味着它拥有自己的shell环境,包括当前工作目录.如果您cd在脚本中,该脚本将在该新的当前目录中运行.但是当它完成后,你仍然在你的用户级shell所在的当前目录中,因为子shell不会触及它.
如果要影响当前的shell环境,可以通过以下方式执行它.:
. my_script
Run Code Online (Sandbox Code Playgroud)
这就像在运行,sh my_script但在当前用户shell的环境中运行.