BASH (التي تعني Bourne Again Shell) هي لغة برمجة تستخدمها معظم أنظمة التشغيل Linux و UNIX.
يمكنك تشغيل أوامر BASH داخل نافذة طرفية واحدة بعد الأخرى أو يمكنك إضافة الأوامر إلى ملف نصي لإنتاج نص برمجي shell.
إن الشيء العظيم في كتابة نصوص shell هو أنه يمكنك تشغيلها مرارًا وتكرارًا. على سبيل المثال ، تخيل أنك تحتاج إلى إضافة مستخدم إلى نظام ، وتعيين أذوناته وإدارة بيئته الأولية. يمكنك إما كتابة الأوامر على قطعة من الورق وتشغيلها عند إضافة مستخدمين جدد أو يمكنك كتابة برنامج نصي واحد فقط تمرير المعلمات في هذا البرنامج النصي.
لغات البرمجة النصية مثل BASH لها بنى برمجة متشابهة مثل اللغات الأخرى. على سبيل المثال ، يمكنك استخدام معلمات الاستيراد للحصول على الإدخال من لوحة المفاتيح وتخزينها كمتغيرات. يمكنك بعد ذلك الحصول على البرنامج النصي لتنفيذ إجراء معين استنادًا إلى قيمة معلمات الإدخال.
جزء أساسي من أي لغة برمجة وبرمجة هي القدرة على تشغيل نفس الكود مراراً وتكراراً.
هناك عدد من الطرق لتكرار الرمز (المعروف أيضًا باسم الحلقات). في هذا الدليل ، سيتم عرض كيفية كتابة حلقة "من أجل".
ا إلى عن على حلقة تكرار جزء معين من التعليمات البرمجية مرارًا وتكرارًا. فهي مفيدة بحيث يمكن أن تستمر سلسلة من الأوامر في العمل حتى يتم استيفاء شرط معين ، وبعد ذلك تتوقف.
في هذا الدليل ، سيتم عرض خمس طرق لاستخدام حلقة for في برنامج نصي BASH.
قبل البدء
قبل البدء بأمثلة الحلقات ، عليك فتح نافذة طرفية واتباع الخطوات التالية:
-
أدخل مخطوطات mkdir (اعرف المزيد عن mkdir هنا).
-
أدخل مخطوطات cd (هذا يغير الدليل الى مخطوطات ).
-
أدخل nano examplen.sh (أين ن هو المثال الذي تعمل عليه).
-
أدخل النص.
-
صحافة CTRL + O لحفظ و CTRL + X للخروج.
-
يركض باش الامتحان (مرة أخرى ، مع ن كونك المثال الذي تعمل به).
كيفية حلقة عبر قائمة
#! / bin / bashfor number in 1 2 3 4 5doecho $ numberdoneexit 0
تختلف طريقة BASH في استخدام الحلقات "for" إلى حد ما عن الطريقة التي تتعامل بها معظم لغات البرمجة واللغات النصية الأخرى مع "for". دعونا كسر البرنامج النصي لأسفل. في BASH "من أجل" حلقة جميع البيانات بين فعل و فعله يتم تنفيذها مرة واحدة لكل عنصر في القائمة. في المثال أعلاه ، القائمة هي كل ما يأتي بعد الكلمة في (أي 1 2 3 4 5). في كل مرة يتم تكرار الحلقة ، يتم إدراج القيمة التالية في القائمة في المتغير المحدد بعد الكلمة "إلى عن على" . في الحلقة أعلاه ، يتم استدعاء المتغير رقم . يتم استخدام عبارة echo لعرض المعلومات على الشاشة. لذلك ، يأخذ هذا المثال الأرقام من 1 إلى 5 ويخرجها واحدة تلو الأخرى إلى الشاشة: تتمثل المشكلة في المثال أعلاه في أنك إذا كنت تريد معالجة قائمة أكبر (من 1 إلى 500 مثلاً) ، فسيحتاج الأمر إلى كتابة الأعداد في كل الأعداد في المقام الأول. هذا يقودنا إلى المثال الثاني الذي يوضح كيفية تحديد نقطة البداية والنهاية: #! / bin / bashfor number in {1..10} doecho "$ number" doneexit 0
القواعد هي نفسها في الأساس. القيم بعد الكلمة " في" قم بتكوين القائمة للتكرار من خلال وضع كل قيمة في القائمة في المتغير (أي الرقم) ، وكلما تكررت الحلقة ، فعل و فعله تم تحقيقها. والفرق الرئيسي هو طريقة تشكيل القائمة. تشير الأقواس المتعرجة {} بشكل أساسي إلى نطاق ، والنطاق ، في هذه الحالة ، هو من 1 إلى 10 (تفصل النقطتان بداية ونهاية النطاق). هذا المثال ، لذلك ، يتم تشغيل كل رقم بين 1 و 10 ويخرج الرقم إلى الشاشة كما يلي: يمكن أن تكون نفس الحلقة مكتوبة بهذه الطريقة ، مع صيغة مطابقة للمثال الأول: للرقم في 1 2 3 4 5 6 7 8 9 10 أظهر المثال السابق كيفية التكرار بين نقطة البداية ونقطة النهاية ، لذلك سنتناول الآن كيفية تخطي الأرقام في النطاق. تخيل أنك تريد أن تتكرر بين 0 و 100 ، ولكن تظهر فقط كل رقم العاشر. يعرض البرنامج النصي التالي كيفية القيام بذلك فقط: #! / bin / bashfor number in {0..100..10} doecho "$ number" doneexit 0
القواعد هي نفسها في الأساس. هناك قائمة ، ومتغير ، ومجموعة من العبارات التي يتعين القيام بها بين فعل و فعله . تبدو القائمة هذه المرة كما يلي: {0..100..10}. الرقم الأول هو 0 والرقم النهائي هو 100. الرقم الثالث (10) هو عدد العناصر في القائمة التي سيتم تخطيها. المثال أعلاه ، لذلك ، يعرض الإخراج التالي: طريقة BASH للكتابة عن الحلقات غريبة قليلاً بالمقارنة مع لغات البرمجة الأخرى. ومع ذلك ، يمكنك كتابة حلقة for في نمط مشابه للغة برمجة C ، كما يلي: #! / bin / bashfor ((number = 1؛ number <100؛ number ++)) {if (($ number٪ 5 == 0)) thenecho "$ number is divisible by 5" fi} exit 0
تبدأ الحلقة عن طريق تعيين الرقم المتغير إلى 1 (رقم = 1 ). ستظل الحلقة متكررة بينما تكون قيمة الرقم أقل من 100 ( رقم <100 ). قيمة ال رقم التغييرات بإضافة 1 إليها بعد كل تكرار ( عدد ++ ). يتم تنفيذ كل شيء بين الأقواس المتعرجة من خلال كل تكرار للحلقة. بت بت بين الأقواس يتحقق قيمة رقم يقسمه 5 ، ويقارن الباقي إلى 0. إذا كان الباقي هو 0 فإن الرقم قابل للقسمة على 5 ثم يتم عرضه على الشاشة. فمثلا: إذا كنت ترغب في تغيير حجم الخطوة للتكرار ، فيمكنك تعديل القسم رقم ++ ليكون عدد = عدد 2 + , عدد = عدد + 5 أو عدد = عدد + 10 إلخ هذا يمكن تقليص أكثر ل عدد + 2 = أو عدد + 5 = . للحلقات يمكن أن تفعل أكثر من قوائم تكرار الأرقام. يمكنك في الواقع استخدام إخراج الأوامر الأخرى كقائمة. يوضح المثال التالي كيفية تحويل الملفات الصوتية من MP3 إلى WAV: #! / بن / سحقلملف في ./*.mp3dompg -w ./wavs/"${file}".wav "$ file" done
القائمة في هذا المثال هي كل ملف بملحق .MP3 في المجلد الحالي والمتغير هو ملف . ال ميلا في الغالون الأمر يحول ملف MP3 إلى WAV. ومع ذلك ، قد تحتاج إلى تثبيت هذا باستخدام مدير الحزم أولاً.
كيفية حلقة بين البداية ونقطة النهاية
كيفية تخطي الأرقام في المدى
أكثر تقليدية تبحث عن حلقة
مثال عملي