我编写了以下代码(并将其添加到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”,但不会更改目录。任何人都可以在我的代码中看到明显的错误吗?
答案 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
}
不过,请注意我添加了缺失的引号。