代码之家  ›  专栏  ›  技术社区  ›  Hemanth

如何向bashrc文件添加/使用变量?

  •  0
  • Hemanth  · 技术社区  · 15 年前

    我需要做以下工作:-

    我在“~/myprojects”下有多个项目

    想想像>ls~/myprojects project1 project2i newproject project\u可能。。。。

    我的所有项目都有一个固定的结构,如下所示:-

    src lib inc通用测试脚本

    用于导航当前() 我想在bashrc文件中做这样的事情。

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

    2 回复  |  直到 15 年前
        1
  •  1
  •   kraftan    15 年前

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

    current() {
        export CURR_PROJECT=$1
    }
    
    alias psrc='cd ~/myprojects/$CURR_PROJECT/src/'
    alias plib='cd ~/myprojects/$CURR_PROJECT/lib/'
    

    CURR_PROJECT

    $ current project1
    

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

    $ psrc
    

    希望能有所帮助。

        2
  •  0
  •   Jon Brett    15 年前

    我在我的工作环境中使用了类似的东西——许多项目都有一个公共的目录结构。我还使用一个选择器来允许我快速选择项目,而不必键入它们的名称。你可能会发现它很有用。

    例如。

    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”,您将得到一个选择:

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

    这对我来说是一个真正的节省时间的方法-也许对你也是。

    推荐文章