创建一个bash别名以链接终端中的更改目录

时间:2015-08-19 11:07:49

标签: bash

我编写了以下代码(并将其添加到Ubuntu中的.bash_aliases文件中),将终端中的目录更改为我输入的项目。例如。如果我输入go project1,它将搜索我的freelance和side_projects目录,如果它有“project1”目录,它将进入该目录。

alias go='goToProject'

function goToProject
{
    echo 'Redirecting to' $1
    if [ -d "side_projects/$1" ]; then
        cd ~/Documents/projects/personal/side_projects/$1
    fi
    if [ -d "freelance/$1" ]; then
        cd ~/Documents/projects/personal/freelance/$1
    fi
}

但是,当我运行此代码时,它会打印“重定向到project1”,但不会更改目录。任何人都可以在我的代码中看到明显的错误吗?

2 个答案:

答案 0 :(得分:4)

或者将其添加到.bashrc:

CDPATH="$CDPATH:$HOME/Documents/projects/personal/side_projects:$HOME/Documents/projects/personal/freelance"

您可以随处使用cd project1

答案 1 :(得分:2)

您不需要别名,只需:

function go
{
    echo "Redirecting to $1"
    if [ -d "side_projects/$1" ]; then
        cd ~/Documents/projects/personal/side_projects/"$1"
    fi
    if [ -d "freelance/$1" ]; then
        cd ~/Documents/projects/personal/freelance/"$1"
    fi
}
不过,请注意我添加了缺失的引号。