如何在我的bashrc文件中添加/使用变量?

时间:2010-10-10 09:36:25

标签: bash .bash-profile

我是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 / curr_project / lib /'

提前致谢

2 个答案:

答案 0 :(得分:1)

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

current() {
    export CURR_PROJECT=$1
}

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

首先,使用

设置CURR_PROJECT
$ current project1

然后调用别名来更改目录:

$ psrc

希望有所帮助。

答案 1 :(得分:0)

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

E.g。

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: 

这对我来说真的很省时 - 也许它也适合你。