كيفية إضافة/استخدام متغير إلى ملف 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" 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:
هذا هو المنقذ الزمني الحقيقي بالنسبة لي - ربما سيكون لك أيضًا.