我是Linux操作系统的新手,需要做以下操作: -

我有多个项目“〜/myprojects”

想想> ls〜/myprojects Project1 Project2i newProject Project_possible ...

我所有的项目都有一个固定结构,请参见以下内容: -

ls〜/myprojects/

src lib inc common test_scripts

(所有这些都是目录中有一些文件

对于导航当前(),我想在BashRC文件中执行类似的操作。

分配curr_project =“ $ 1”别名psrc ='cd〜/myprojects/curr_project/src/'别名plib ='cd〜/myprojects/myprojects/curr_project/lib/'

提前致谢

有帮助吗?

解决方案

您可以使用环境变量来指定当前项目并使用别名中的变量:

current() {
    export CURR_PROJECT=$1
}

alias psrc='cd ~/myprojects/$CURR_PROJECT/src/'
alias plib='cd ~/myprojects/$CURR_PROJECT/lib/'

首先,您设置 CURR_PROJECT 通过使用

$ current project1

然后,您致电别名更改目录:

$ psrc

希望有帮助。

其他提示

我在工作环境中使用类似的东西 - 许多具有共同目录结构的项目。我还使用选择器允许我快速选择项目而无需输入其名称。您可能会发现它有用。

例如

current()
{
    export PROJECT_ROOT=~/myprojects

    # If you pass a project name, use it, otherwise print a list
    # for the user to select
    if [ -n "$1" ]; then
        export CURRENT_PROJECT=$1
    else
        # Find subdirectories in PROJECT_ROOT
        SUBDIRS=`find $PROJECT_ROOT -mindepth 1 -maxdepth 1 -type d -printf "%f "`
        if [ -n "$SUBDIRS" ]; then
           PS3="Select project: "
           select d in $SUBDIRS; do
               if [[ -n $d ]]; then
                   export CURRENT_PROJECT=$d
                   break
               else
                   echo "Bad choice"
                   return
               fi
           done
        else
          echo "No projects found"
          return
        fi
    fi

    # Now we have the CURRENT_PROJECT name, set up the aliases
    alias psrc='cd $PROJECT_ROOT/$CURRENT_PROJECT/src/'
    alias plib='cd $PROJECT_ROOT/$CURRENT_PROJECT/lib/'
}

然后,如果您键入“电流”,您将获得一个选择:

~$ current
1) proj1
2) proj2
3) proj3
Select project: 

这对我来说是一个实时的节省 - 也许也适合您。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top