这是我运行的一个小测试,尝试将我移回 root:
#!/bin/bash
pwd
cd /
pwd
它返回当前工作目录,然后返回正确的新目录,但是当脚本执行完毕时,我仍然在原始目录中并且没有移动。有什么办法可以实现这一点吗?
谢谢。
答案1
无法在脚本中实现此目的 - 脚本启动子 shell,这是一个独立的环境。造成这种情况的原因有很多,但从根本上讲——脚本无法篡改你的环境(包括您的cwd
)。
最接近的是在当前的壳。
alias chr="cd /"
无论是那种情况,还是“源”脚本,它都会在当前 shell 中“运行”。例如像你的.bashrc
.