الفرق بين المراجعتين لصفحة: «Bash/script basics»
أسامه-دمراني (نقاش | مساهمات) إضافة 1.1 : التصنيفات |
أسامه-دمراني (نقاش | مساهمات) طلا ملخص تعديل |
||
(3 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:أساسيات كتابة برامج Bash}}</noinclude> | <noinclude>{{DISPLAYTITLE:أساسيات كتابة برامج Bash}}</noinclude> | ||
== في أي صدفة سيعمل البرنامج؟ == | == في أي صدفة سيعمل البرنامج؟ == | ||
يجب أن تحدد الصدفة التي ستنفِّذ البرنامج إذا أردت تنفيذه في صدفة فرعية، فقد لا تكون الصدفة التي كتبت فيها البرنامج هي الصدفة الافتراضية لنظامك، وعليه قد تُنتِج أوامر برنامجك أخطاءً عند تنفيذها في الصدفة الخطأ. | يجب أن تحدد الصدفة التي ستنفِّذ البرنامج إذا أردت تنفيذه في صدفة فرعية، فقد لا تكون الصدفة التي كتبت فيها البرنامج هي الصدفة الافتراضية لنظامك، وعليه قد تُنتِج أوامر برنامجك أخطاءً عند تنفيذها في الصدفة الخطأ. | ||
سطر 31: | سطر 30: | ||
echo "I'm setting two variables now." | echo "I'm setting two variables now." | ||
COLOR="black" # اضبط متغير محلي للصدفة | |||
VALUE="9" # اضبط متغير محلي للصدفة | VALUE="9" # اضبط متغير محلي للصدفة | ||
echo "This is a string: $ | echo "This is a string: $COLOR" # اعرض محتوى المتغير | ||
echo "And this is a number: $VALUE" # اعرض محتوى المتغير | echo "And this is a number: $VALUE" # اعرض محتوى المتغير | ||
echo | echo | ||
سطر 47: | سطر 46: | ||
== مصادر == | == مصادر == | ||
* [http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_02.html دليل Bash | * [http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_02.html دليل Bash للمبتدئين، صفحة أساسيات كتابة برامج Bash] . | ||
[[تصنيف:Bash]] | [[تصنيف:Bash]] | ||
[[تصنيف:Bash Scripts]] | [[تصنيف:Bash Scripts]] | ||
[[تصنيف:Bash Commenting Scripts]] | [[تصنيف:Bash Commenting Scripts]] |
المراجعة الحالية بتاريخ 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 موثقة جيدًا لأنها معرضة للقراءة والتعديل من أي مستخدم للينكس.