Как добавить / использовать переменную в мой файл Bashrc?
-
29-09-2019 - |
Вопрос
Я новичок в операционной системе Linux, мне нужно сделать следующее:-
У меня есть несколько проектов под «~ MyProjects»
Подумайте о любви> LS ~ / myProjects Project1 Project2i NewProject Project_Possible ....
Все мои проекты имеют фиксированную структуру, см. Как ниже:-
ls ~ / myprojects /
src lib inc common test_scripts
(Все это каталоги, имеющие некоторые файлы в них
Для навигации по текущему () я хочу сделать что-то вроде этого в моем файле Bashrc.
Назначить curr_project = "$ 1" псевдоним psrc = 'cd ~ / myprojects / curr_project / src /' плисы plib = 'cd ~ / myprojects / curr_project / lib /'
заранее спасибо
Решение
Вы можете использовать переменную среды, чтобы указать текущий проект и использовать переменную в своих псевдонимах:
current() {
export CURR_PROJECT=$1
}
alias psrc='cd ~/myprojects/$CURR_PROJECT/src/'
alias plib='cd ~/myprojects/$CURR_PROJECT/lib/'
Сначала вы установили CURR_PROJECT
используя
$ current project1
Затем вы называете свой псевдоним, чтобы изменить каталоги:
$ psrc
Надеюсь, это поможет.
Другие советы
Я использую что-то подобное для моей рабочей среды - многие проекты с общими структурами каталогов. Я также использую селектор, чтобы позволить мне быстро выбирать проекты, не набрав их имя. Вы можете найти это полезным.
Например
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/'
}
Затем, если вы напечатаете «Текущий», вы получите выбор:
~$ current
1) proj1
2) proj2
3) proj3
Select project:
Это реальная экономия времени для меня - может быть, это будет для вас тоже.