كيفية إضافة/استخدام متغير إلى ملف 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" alias psrc = 'cd ~/myProjects/curr_project/src/' alias 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