Pregunta

Soy un novato al sistema operativo Linux Tengo que hacer lo siguiente: -

Tengo varios proyectos en "~ / MyProjects"

Piense como> ls ~ / MyProjects Proyecto1 project2i newproject project_possible ....

Todos mis proyectos tienen una estructura fija, véase la siguiente manera: -

  

ls ~ / MyProjects /

src lib inc test_scripts comunes

(todos estos son directorios que tienen algunos archivos en ellos

Para la navegación por el actual () Quiero hacer algo como esto en mi archivo .bashrc.

Asignar curr_project = "$ 1" alias PSRC = 'cd ~ / MyProjects / curr_project / src /' alias plib = 'cd ~ / MyProjects / curr_project / lib /'

Gracias de antemano

¿Fue útil?

Solución

Se puede utilizar una variable de entorno para especificar el proyecto actual y utilizar la variable en sus alias:

current() {
    export CURR_PROJECT=$1
}

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

En primer lugar se ajusta el CURR_PROJECT utilizando

$ current project1

A continuación, se llama a tu alias a los directorios de cambio:

$ psrc

Espero que ayude.

Otros consejos

Yo uso algo similar para mi entorno de trabajo - muchos proyectos con estructuras de directorios comunes. También utilizo un selector para permitir a elegir proyectos de forma rápida sin tener que teclear su nombre. Puede que le resulte útil.

por ejemplo.

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/'
}

A continuación, si escribe "actual", obtendrá una opción:

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

Este es un gran ahorro de tiempo para mí -. Tal vez será para usted también

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top