Wie Hinzufügen / eine Variable zu meiner bashrc verwenden?
-
29-09-2019 - |
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
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