Как добавить / использовать переменную в мой файл Bashrc?

StackOverflow https://stackoverflow.com/questions/3899779

  •  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: 

Это реальная экономия времени для меня - может быть, это будет для вас тоже.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top