ما هي متغيرات باش وكيف يمكنك استخدامها؟


يتيح لك 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”.

  1. افتح الملف “~ / .bashrc” في محرر النصوص المفضل لديك.
  1. نقترح أن تبدأ بإجراء اختبار ، بإضافة متغير واحد فقط ، حتى تعرف أين تبحث إذا لم تنجح العملية. انتقل إلى نهاية الملف ، وفي سطر جديد ، أضف المتغير الخاص بك.
محطة عرض متغير دائم جديد داخل ملف bashrc.
  1. احفظ ملفك واخرج من المحرر. لن يتم تطبيق التعديلات على الفور. أدخل ما يلي في جهازك الطرفي حتى يدخل حيز التنفيذ:
  1. استفد من المتغير الذي تم تعيينه حديثًا في جلسة Bash:

يمكنك إعداد العديد من المتغيرات كما تريد وتبسيط مغامراتك اليومية إلى حد كبير في Bash.

لزيادة الإنتاجية ، يجدر أيضًا إعداد نوع مختلف من المتغيرات: الأسماء المستعارة. على عكس المتغيرات النموذجية ، التي يتم تعيينها للبيانات التي يمكنك استخدامها في الأوامر ، يتم استخدام الأسماء المستعارة بدلاً من الأوامر الفعلية.

مثلما يمكنك استخدام متغير سهل التذكر للاحتفاظ بسلاسل نصية طويلة ، يمكنك استخدام الأسماء المستعارة كبدائل سهلة للأوامر المعقدة. يمكنك معرفة المزيد عنها هنا ، حيث نقوم بتحويل أمر ضغط 7zip بالكامل إلى اسم مستعار مكون من حرفين.

أخيرًا ، حتى إذا قمت بتعيين متغير بشكل دائم في .bashrc ، يمكنك إعادة تعيين قيمة مختلفة إليه مؤقتًا ، كما رأينا من قبل. سيعرض المتغير المحتوى الجديد حتى تنتهي جلسة Bash الحالية (بعد تسجيل الخروج أو إعادة التشغيل) أو إعادة مصدر ملف .bashrc.

تكوين المصفوفات

بينما يعتقد معظم مستخدمي Bash أن المتغيرات هي رابط بسيط بين جزء من البيانات والتسمية ، فمن الممكن أيضًا استخدامها كعلامة للمصفوفات. هذه هي نوع من بنية البيانات التي يمكنها تخزين قيم متعددة في تنسيق فهرس مرقم. لإنشاء مصفوفة ، اتبع الخطوات أدناه:

  1. قم بإنشاء نص برمجي فارغ:
  1. استخدم ال declare أمر فرعي لتهيئة مصفوفة Bash في عملية shell الحالية.
محطة تعرض خطوة الإعلان عن مصفوفة.
  1. قم بتعبئة المصفوفة الجديدة الخاصة بك باستخدام عامل التعيين المدمج Bash. على سبيل المثال ، يُنشئ سطر التعليمات البرمجية التالي مصفوفة بداخلها خمسة عناصر:
myarray=([0]=hello [1]=maketecheasier [2]=its [3]=an [4]=array)
محطة تعرض مصفوفة أساسية مكونة من 5 عناصر.
  1. اختبر ما إذا كانت المصفوفة الجديدة تعمل باستخدام امتداد echo أمر لسحب البيانات منه:
محطة تعرض نص المصفوفة الذي يجلب عنصر مصفوفة واحد.

يمكنك أيضًا دفق محتويات المصفوفة باستخدام عامل التشغيل “*”:

محطة عرض البرنامج النصي للمصفوفة يتدفق المصفوفة بأكملها.

تنفيذ المتغيرات الفرعية

تتمثل إحدى أكبر ميزات Bash في قدرته على إنشاء مجموعات فرعية ، حيث يمكن تشغيل البرامج كما لو كانت وظائف أساسية. على سبيل المثال ، الكتابة ls -a في البرنامج النصي shell وتشغيله سيستمر طباعة محتويات دليل العمل الحالي.

محطة تعرض مجموعة فرعية بسيطة من الأوامر.

في حين أن هذا قد يبدو مقيدًا ، فإن Bash يوسع ذلك من خلال السماح لك بتخزين مخرجات هذه البرامج داخل المتغيرات. يتيح لك ذلك استخدامها كمدخلات لبرامج أخرى داخل البرنامج النصي الخاص بك.

  1. لاستخدام متغيرات subshell ، أنشئ أولاً نصًا برمجيًا فارغًا:
  1. اكتب الكود المعياري التالي داخل سكربت الصدفة الجديد:
#!/bin/bash
 
mysubshell=$(x)
echo "The output of the variable is $mysubshell"
  1. استبدل حرف “x” بالأمر الذي تريد تشغيله وتخزين المخرجات. على سبيل المثال ، سيحصل ما يلي على محتويات ملف world.txt واستبدال كلمة “world” بـ “maketecheasier”.
mysubshell=$(sed s/world/maketecheasier/g world.txt)
محطة تعرض تنفيذًا بسيطًا للقشرة الفرعية.
  1. اختبر المتغير الفرعي الجديد الخاص بك عن طريق تشغيل البرنامج النصي الجديد الخاص بك:
chmod u+x ./subshell.sh
bash ./subshell.sh
محطة توضح إخراج البرنامج النصي الفرعي.

لعِلمِكَ: بالإضافة إلى المتغيرات ، هذه هي الأحرف الخاصة التي يجب أن تعرفها في Bash.

معالجة السلاسل الفرعية

بصرف النظر عن تخزين البيانات واسترجاعها ، يمكنك أيضًا تعديل محتويات المتغيرات. يحتوي Bash على مجموعة من العوامل التي يمكنك إرفاقها في نهاية كل متغير ، مما سيسمح لك بضبط البرامج النصية الخاصة بك دون استدعاء أي برامج إضافية.

  1. قم بإنشاء نص برمجي فارغ:
  1. اكتب الكود المعياري التالي داخل البرنامج النصي الفارغ:
#!/bin/bash
 
mysubstring=hello.txt.old
echo "My filename is: ${mysubstring}"
  1. يأتي التلاعب الأساسي في السلسلة الفرعية في ثلاثة أشكال. أولاً ، يقبل الحرف “#” نمط regex الذي ستزيله الصدفة في بداية المتغير:
#!/bin/bash
 
mysubstring=hello.txt.old
echo "My filename is: ${mysubstring#*.}"
محطة تعرض معالجة البادئة الأساسية للسلسلة الفرعية.
  1. ثانيًا ، يقبل الحرف “٪” أيضًا نمط regex ستزيله الصدفة في نهاية المتغير:
#!/bin/bash
 
mysubstring=hello.txt.old
echo "My filename is: ${mysubstring%.*}"
محطة عرض معالجة أساسية لسلسلة فرعية postfix.
  • يوفر 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.

رمسيس أحمر
رمسيس أحمر

Ramces كاتب تقني عاش مع أجهزة الكمبيوتر طوال حياته. إنه قارئ غزير الإنتاج وطالب في الأنثروبولوجيا ، وهو شخصية غريبة الأطوار يكتب مقالات عن Linux وأي شيء * لا شىء.

اشترك في نشرتنا الإخبارية!

تم تسليم أحدث دروسنا مباشرة إلى صندوق الوارد الخاص بك

Previous post وزيرة التعاون الدولى تستعرض جهود الدولة للتحول إلى المدن الذكية والخضراء
Next post بايدن يتحدث عن مفاوضات سقف الديون قبل مغادرته إلى آسيا

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *