Cómo agregar / usar una variable para mi bashrc?
-
29-09-2019 - |
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
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