一尘不染

为什么“ cd”在shell脚本中不起作用?

linux

我正在尝试编写一个小脚本以将当前目录更改为我的项目目录:

#!/bin/bash
cd /home/tree/projects/java

我将此文件另存为proj,使用添加了执行权限chmod,然后将其复制到/usr/bin。当我通过以下方式调用它时
proj,它什么也没做。我究竟做错了什么?


阅读 297

收藏
2020-06-02

共1个答案

一尘不染

Shell脚本在一个子Shell中运行,每个子Shell对当前目录都有自己的概念。的cd成功,但只要子shell退出,你是在交互式背壳和从来都没有改变,因此。

解决此问题的一种方法是改用别名:

alias proj="cd /home/tree/projects/java"
2020-06-02