يتيح لك Bash تعيين سلاسل نصية كاملة لمتغيرات فردية ، مما يسهل استخدامه وكتابة النص. كيف تعمل وكيف يمكنك استخدامها؟ هيا نكتشف.
ما هو متغير باش؟
المتغيرات هي أسماء يسهل تذكرها ويمكن أن تحتوي على قيم أبجدية رقمية مختلفة. إنها مفيدة ، لأنها تسمح بتطبيق نفس الوظيفة على قيم مختلفة ، دون الحاجة إلى إعادة كتابة نص / جزء من التعليمات البرمجية. كما أنها تجعل كتابة النص / جزء من الكود أمرًا سهلاً ، لأنه بدلاً من التعامل مع القيم الفردية ، يمكنك استخدام نفس الاسم لكل منهم.
متغيرات الوقت الحقيقي
يسمح Bash باستخدام المتغيرات. يمكنك إنشاء متغيرات أثناء التنقل وإعادة استخدامها أثناء جلسة Bash الحالية. يمكنهم مساعدتك في استخدام Bash بعدة طرق مختلفة وستختفي بعد انتهاء الجلسة الحالية.
على سبيل المثال ، لنفترض أنك تزور مجموعة من المواقع. يمكنك إجراء بحث أو كشط البيانات وإنشاء المتغير التالي:
sitea=https://www.maketecheasier.com
بعد ذلك ، إذا أردت زيارة موقعنا باستخدام Firefox ، يمكنك فقط كتابة:
أسهل بكثير – وأكثر قابلية للقراءة. ال $sitea
سيظل متغيرًا معينًا إلى الموقع حتى تقوم بتغيير محتوياته يدويًا أو تنتهي جلسة Bash. وبالطبع ، يمكنك إنشاء المزيد من المتغيرات ، مثل siteb
و sitec
، و sited
.
عند إعداد متغيرات جديدة ، يمكنك استخدام أي أسماء ترغب فيها وتخزين أي سلاسل أبجدية رقمية بداخلها. ومع ذلك ، ضع في اعتبارك أنها حساسة لحالة الأحرف بشكل افتراضي. هكذا، $sitea
لن يكون هو نفسه $SiteA
. لاحظ أيضًا أنه يجب عليك استخدام علامات الاقتباس عند تخزين سلاسل بأحرف خاصة بداخلها (بما في ذلك المسافات).
نصيحة: بالنسبة لأولئك الجدد على Bash ، ابدأ باستخدام أوامر Bash الأساسية هذه.
المتغيرات في النصوص
تعد المتغيرات في Bash أكثر فائدة عند كتابة البرامج النصية ، لأنها تسمح لك بكتابة نص برمجي واحد ، والذي يمكنه بعد ذلك التكرار من خلال سلاسل مختلفة أو العمل على أجزاء مخصصة من البيانات. لنفترض أنك تكتب نصًا يمكن للجميع استخدامه على أجهزة الكمبيوتر الخاصة بهم ، ولكن في كل مرة ستعرض تحية شخصية. بدون متغيرات ، يجب عليك كتابة إصدار مختلف من البرنامج النصي لكل مستخدم. باستخدام المتغيرات ، يمكنك الاحتفاظ بالبرنامج النصي كما هو وتغيير اسم المستخدم فقط.
سيبدو مثل هذا البرنامج النصي على النحو التالي:
#!/bin/bash username=Ramces echo $username
قد يبدو المثال أعلاه زائدة عن الحاجة ؛ ومع ذلك ، مع زيادة تعقيد الكود ، تصبح المتغيرات لا غنى عنها. يمكن أن يتكون البرنامج النصي من مئات أو آلاف الأسطر ويحتوي على اسم المستخدم في أماكن مختلفة. لفهمها بشكل أفضل ، ضع في اعتبارك النص البرمجي المختلف نوعًا ما التالي:
#!/bin/bash username=Linus echo Hello $username. This is a simple script I wrote that will repeat your name - that is, $username - often as an actual example of how to use Bash variables. I hope it will make it easier to understand how to use variables to improve your Bash workflow, $username. In this case, the variable username is mapped to your name. Whenever Bash runs into it, it replaces it with $username.
سيستخدم البرنامج النصي أعلاه الاسم المحدد باسم username
متغير لإكمال النص. إذا كنت تستخدم اسم المستخدم الفعلي ، فسيتعين عليك كتابته أربع مرات ، ثم فعل الشيء نفسه للمستخدم التالي ، وأربع مرات أخرى في المرة التالية. مرة بعد مرة. من خلال تخصيصه لمتغير ، ما عليك سوى تغييره مرة واحدة لكل مستخدم ، وسيتم تحديث كل ذكر لاسم المستخدم في النص.
جيد ان تعلم: بخلاف المتغيرات ، يمكنك أيضًا استخدام حلقة for في Bash.
متغيرات Bash الدائمة والأسماء المستعارة
لقد رأينا كيف يمكنك تعيين المتغيرات مؤقتًا وكيف يمكنك تضمينها في البرامج النصية الخاصة بك لشيء أكثر ديمومة. يمكنك أيضًا تعيين المتغيرات بشكل دائم في Bash عن طريق تحرير ملف “~ / .bashrc”.
- افتح الملف “~ / .bashrc” في محرر النصوص المفضل لديك.
- نقترح أن تبدأ بإجراء اختبار ، بإضافة متغير واحد فقط ، حتى تعرف أين تبحث إذا لم تنجح العملية. انتقل إلى نهاية الملف ، وفي سطر جديد ، أضف المتغير الخاص بك.
- احفظ ملفك واخرج من المحرر. لن يتم تطبيق التعديلات على الفور. أدخل ما يلي في جهازك الطرفي حتى يدخل حيز التنفيذ:
- استفد من المتغير الذي تم تعيينه حديثًا في جلسة Bash:
يمكنك إعداد العديد من المتغيرات كما تريد وتبسيط مغامراتك اليومية إلى حد كبير في Bash.
لزيادة الإنتاجية ، يجدر أيضًا إعداد نوع مختلف من المتغيرات: الأسماء المستعارة. على عكس المتغيرات النموذجية ، التي يتم تعيينها للبيانات التي يمكنك استخدامها في الأوامر ، يتم استخدام الأسماء المستعارة بدلاً من الأوامر الفعلية.
مثلما يمكنك استخدام متغير سهل التذكر للاحتفاظ بسلاسل نصية طويلة ، يمكنك استخدام الأسماء المستعارة كبدائل سهلة للأوامر المعقدة. يمكنك معرفة المزيد عنها هنا ، حيث نقوم بتحويل أمر ضغط 7zip بالكامل إلى اسم مستعار مكون من حرفين.
أخيرًا ، حتى إذا قمت بتعيين متغير بشكل دائم في .bashrc ، يمكنك إعادة تعيين قيمة مختلفة إليه مؤقتًا ، كما رأينا من قبل. سيعرض المتغير المحتوى الجديد حتى تنتهي جلسة Bash الحالية (بعد تسجيل الخروج أو إعادة التشغيل) أو إعادة مصدر ملف .bashrc.
تكوين المصفوفات
بينما يعتقد معظم مستخدمي Bash أن المتغيرات هي رابط بسيط بين جزء من البيانات والتسمية ، فمن الممكن أيضًا استخدامها كعلامة للمصفوفات. هذه هي نوع من بنية البيانات التي يمكنها تخزين قيم متعددة في تنسيق فهرس مرقم. لإنشاء مصفوفة ، اتبع الخطوات أدناه:
- قم بإنشاء نص برمجي فارغ:
- استخدم ال
declare
أمر فرعي لتهيئة مصفوفة Bash في عملية shell الحالية.
- قم بتعبئة المصفوفة الجديدة الخاصة بك باستخدام عامل التعيين المدمج Bash. على سبيل المثال ، يُنشئ سطر التعليمات البرمجية التالي مصفوفة بداخلها خمسة عناصر:
myarray=([0]=hello [1]=maketecheasier [2]=its [3]=an [4]=array)
- اختبر ما إذا كانت المصفوفة الجديدة تعمل باستخدام امتداد
echo
أمر لسحب البيانات منه:
يمكنك أيضًا دفق محتويات المصفوفة باستخدام عامل التشغيل “*”:
تنفيذ المتغيرات الفرعية
تتمثل إحدى أكبر ميزات Bash في قدرته على إنشاء مجموعات فرعية ، حيث يمكن تشغيل البرامج كما لو كانت وظائف أساسية. على سبيل المثال ، الكتابة ls -a
في البرنامج النصي shell وتشغيله سيستمر طباعة محتويات دليل العمل الحالي.
في حين أن هذا قد يبدو مقيدًا ، فإن Bash يوسع ذلك من خلال السماح لك بتخزين مخرجات هذه البرامج داخل المتغيرات. يتيح لك ذلك استخدامها كمدخلات لبرامج أخرى داخل البرنامج النصي الخاص بك.
- لاستخدام متغيرات subshell ، أنشئ أولاً نصًا برمجيًا فارغًا:
- اكتب الكود المعياري التالي داخل سكربت الصدفة الجديد:
#!/bin/bash mysubshell=$(x) echo "The output of the variable is $mysubshell"
- استبدل حرف “x” بالأمر الذي تريد تشغيله وتخزين المخرجات. على سبيل المثال ، سيحصل ما يلي على محتويات ملف world.txt واستبدال كلمة “world” بـ “maketecheasier”.
mysubshell=$(sed s/world/maketecheasier/g world.txt)
- اختبر المتغير الفرعي الجديد الخاص بك عن طريق تشغيل البرنامج النصي الجديد الخاص بك:
chmod u+x ./subshell.sh bash ./subshell.sh
لعِلمِكَ: بالإضافة إلى المتغيرات ، هذه هي الأحرف الخاصة التي يجب أن تعرفها في Bash.
معالجة السلاسل الفرعية
بصرف النظر عن تخزين البيانات واسترجاعها ، يمكنك أيضًا تعديل محتويات المتغيرات. يحتوي Bash على مجموعة من العوامل التي يمكنك إرفاقها في نهاية كل متغير ، مما سيسمح لك بضبط البرامج النصية الخاصة بك دون استدعاء أي برامج إضافية.
- قم بإنشاء نص برمجي فارغ:
- اكتب الكود المعياري التالي داخل البرنامج النصي الفارغ:
#!/bin/bash mysubstring=hello.txt.old echo "My filename is: ${mysubstring}"
- يأتي التلاعب الأساسي في السلسلة الفرعية في ثلاثة أشكال. أولاً ، يقبل الحرف “#” نمط regex الذي ستزيله الصدفة في بداية المتغير:
#!/bin/bash mysubstring=hello.txt.old echo "My filename is: ${mysubstring#*.}"
- ثانيًا ، يقبل الحرف “٪” أيضًا نمط regex ستزيله الصدفة في نهاية المتغير:
#!/bin/bash mysubstring=hello.txt.old echo "My filename is: ${mysubstring%.*}"
- يوفر Bash أيضًا طريقة لتعديل محتويات المتغير بشكل انتقائي. مشابهه ل
sed
برنامج ، يمكنك استخدام الحرف “/” للبحث عن أي سلسلة داخل متغير واستبدالها:
#!/bin/bash mysubstring=hello.txt echo "My filename is: ${mysubstring/hello/maketecheasier}"
جيد ان تعلم: تعد التعبيرات العادية أداة مهمة في مجموعة أدوات كل مستخدمي Linux. تعرف على كيفية استخدامها بفعالية من خلال ورقة الغش سهلة التعلم.
أسئلة مكررة
هل من الممكن تشغيل برنامج شيل داخل متغير؟
نعم ، من خلال كتابة المسار الكامل للنص الذي تريد تشغيله. على سبيل المثال ، الجري $(/home/ramces/.scripts/sample.sh)
سيقوم بإنشاء Bash subshell وتشغيل البرنامج النصي “sample.sh” من دليلي الرئيسي.
هل يمكنك إزالة متغير أثناء تشغيل البرنامج النصي؟
نعم. يمكنك إزالة متغير من عملية shell قيد التشغيل عن طريق إدخال unset
الأمر الفرعي متبوعًا باسم المتغير في البرنامج النصي الخاص بك. من المهم ملاحظة أن تشغيل هذا الأمر لن يزيل أي متغيرات تعمل خارج عملية shell الحالية.
هل يمكنك استخدام متغير دائم داخل سكربت شيل خارجي؟
نعم. من الممكن الإشارة إلى قيمة متغير تم التصريح عنه خارج عملية shell الحالية. ومع ذلك ، يجب أيضًا أن تكون حذرًا عند استخدام المتغيرات الخارجية ، حيث من السهل الكتابة فوقها مؤقتًا.
رصيد الصورة: Unsplash. جميع التعديلات ولقطات الشاشة بواسطة Ramces Red.
اشترك في نشرتنا الإخبارية!
تم تسليم أحدث دروسنا مباشرة إلى صندوق الوارد الخاص بك
اكتشاف المزيد من ينبوع المعرفة
اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.