Frage

Ich bin ein Neuling auf Linux-Betriebssystem Ich muss folgendes tun: -

Ich habe mehrere Projekte unter "~ / myprojects"

Denken Sie an wie> ls ~ / myprojects project1 project2i newproject project_possible ....

Alle meine Projekte haben eine feste Struktur siehe unten ein: -

  

ls ~ / myprojects /

src lib inc gemeinsam test_scripts

(alle diese sind Verzeichnisse einige Dateien in ihnen mit

Für die aktuelle Navigation () Ich möchte in meiner bashrc, so etwas tun.

assign curr_project = "$ 1" alias psrc = 'cd ~ / myprojects / curr_project / src /' alias plib = 'cd ~ / myprojects / curr_project / lib /'

Vielen Dank im Voraus

War es hilfreich?

Lösung

Sie können eine Umgebungsvariable verwenden, um das aktuelle Projekt zu spezifizieren und die Variable in Ihre Aliase verwenden:

current() {
    export CURR_PROJECT=$1
}

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

Zuerst stellen Sie die CURR_PROJECT mithilfe von

$ current project1

Dann rufen Sie Ihren Alias ??ändern Verzeichnisse:

$ psrc

Ich hoffe, das hilft.

Andere Tipps

Ich verwende etwas ähnliches für meine Arbeitsumgebung - viele Projekte mit einem gemeinsamen Verzeichnisstruktur. Ich benutze auch einen Selektor ich Projekte auswählen schnell ihren Namen ohne die Eingabe zu ermöglichen. Sie können es nützlich finden.

z.

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

Dann, wenn Sie „Strom“, haben Sie die Wahl bekommen:

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

Dies ist eine echte Zeitersparnis für mich -. Vielleicht wird es auch für Sie

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top