Question

Je suis un débutant au système d'exploitation Linux Je dois faire ce qui suit: -

J'ai plusieurs projets sous "~ /" MyProjects

Pensez comme> ls ~ / MyProjects project1 project2i newproject project_possible ....

Tous mes projets ont une structure fixe, voir ci-dessous: -

  

ls ~ / MyProjects /

src lib inc test_scripts communs

(tous ces répertoires sont ayant des fichiers dans les

Pour naviguer dans le courant () Je veux faire quelque chose comme ça dans mon bashrc.

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

Merci à l'avance

Était-ce utile?

La solution

Vous pouvez utiliser une variable d'environnement pour spécifier le projet en cours et utiliser la variable dans vos alias:

current() {
    export CURR_PROJECT=$1
}

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

Tout d'abord vous définissez le CURR_PROJECT en utilisant

$ current project1

Ensuite, vous appelez votre alias aux répertoires de changement:

$ psrc

L'espoir qui aide.

Autres conseils

J'utilise quelque chose de similaire pour mon environnement de travail - de nombreux projets avec des structures de répertoires communs. Je l'utilise aussi un sélecteur pour me permettre de choisir rapidement des projets sans avoir à taper leur nom. Vous trouverez peut-être utile.

par exemple.

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

Alors si vous tapez « courant », vous obtiendrez un choix:

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

Ceci est un vrai gain de temps pour moi -. Peut-être ce sera pour vous aussi

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top