أساسيات كتابة برامج Bash

من موسوعة حسوب
< Bash
مراجعة 22:10، 5 سبتمبر 2018 بواسطة أسامه-دمراني (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

في أي صدفة سيعمل البرنامج؟

يجب أن تحدد الصدفة التي ستنفِّذ البرنامج إذا أردت تنفيذه في صدفة فرعية، فقد لا تكون الصدفة التي كتبت فيها البرنامج هي الصدفة الافتراضية لنظامك، وعليه قد تُنتِج أوامر برنامجك أخطاءً عند تنفيذها في الصدفة الخطأ.

يحدد أول سطر في البرنامج نوع الصدفة، ويجب أن يكون أول محرفين في ذلك السطر !#، ثم يتلو ذلك مسار الصدفة التي ستنفِّذ البرنامج. كذلك لا تبدأ برنامجك بسطر فارغ إذ تُقرأ الأسطر الفارغة على أنها أسطر أيضًا، وستبدأ كل البرامج في هذا الشرح بالسطر التالي:

#!/bin/bash

يشير السطر السابق أن Bash موجودة في bin/.

إضافة تعليقات

يجب أن تدرك أن برنامجك قد يطلع عليه غيرك ويقرؤه، فإن كثيرًا من المستخدمين ومدراء النظم يستخدمون برامج للصدفة كتبها غيرهم، فإن كنت ترغب في أن يفهم أولئك المستخدمين أسلوب كتابتك لبرنامجك فعليك أن تسجل فيه تعليقات عما فعلته فيه.

بل إن التعليقات تيسّر عليك أنت أمر التعديل في البرنامج والرجوع إلى ما كتبت مرة أخرى، فلنقل أنك قرأت كثيرًا من صفحات man لتحقق نتيجة معينة بأحد الأوامر التي استخدمتها في برنامجك ثم احتجت أن تغير شيفرتك تلك بعدها، كيف ستتذكر شكل البرنامج الأول بعد أسبوعين من التغيير الجديد إن لم تكن قد سجلت تعليقات فيه بما فعلت وكيف فعلته، والسبب الذي دفعك لاختيار تلك الأوامر أو التعديلات؟

انسخ ملف script1.sh في مثال إنشاء وتشغيل برنامج Bash وسمّه commented-script1.sh، وسنعدّل محتواه بحيث تصف التعليقات ما تفعله الأوامر، انتبه إلى أن أي شيء تقابله الصدفة بعد علامة # في أي سطر فإنها تتجاهله، ولا يظهر إلا عند فتح الملف المصدري للبرنامج:

#!/bin/bash
# يمسح هذا البرنامج محتوى الطرفية، ويحيِّي المستخدم ويعطي معلومات عن المستخدمين
# المتصلين في وقت تنفيذ البرنامج. المتغيران المستخدمان كأمثلة مهيئان ومعروضان

clear			                    	# امسح محتويات الطرفية فورًا

echo "The script starts now."

echo "Hi, $USER!"	                	# تُستخدم علامة الدولار لجلب محتوى أحد المتغيرات
echo

echo "I will now fetch you a list of connected users:"
echo							
w				                        # اعرض من سجّل الدخول وماذا يفعل
echo

echo "I'm setting two variables now."
COLOR="black"		        			# اضبط متغير محلي للصدفة
VALUE="9"			            		# اضبط متغير محلي للصدفة
echo "This is a string: $COLOR"		        # اعرض محتوى المتغير
echo "And this is a number: $VALUE"		# اعرض محتوى المتغير
echo

echo "I'm giving you back your prompt now."
echo

تكون أول أسطر في برامج الصدفة عادة عبارة عن تعليقات تشرح طبيعة المهام التي ينفذها البرنامج، ثم يُصحب كل قطعة من الشيفرة بتعليق أو أكثر للتوضيح. ستجد مثالًا على ذلك في مجلد init.d في نظامك، إذ أن شيفرات init موثقة جيدًا لأنها معرضة للقراءة والتعديل من أي مستخدم للينكس.

انظر أيضًا

مصادر