الفرق بين المراجعتين لصفحة: «Bash/script basics»
أسامه-دمراني (نقاش | مساهمات) إضافة عنوان الصفحة |
أسامه-دمراني (نقاش | مساهمات) إضافة 1.0 محتوى من المصدر المذكور في الصفحة |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:أساسيات كتابة برامج Bash}}</noinclude> | <noinclude>{{DISPLAYTITLE:أساسيات كتابة برامج Bash}}</noinclude> | ||
== في أي صدفة سيعمل البرنامج؟ == | |||
يجب أن تحدد الصدفة التي ستنفِّذ البرنامج إذا أردت تنفيذه في صدفة فرعية، فقد لا تكون الصدفة التي كتبت فيها البرنامج هي الصدفة الافتراضية لنظامك، وعليه قد تُنتِج أوامر برنامجك أخطاءً عند تنفيذها في الصدفة الخطأ. | |||
يحدد أول سطر في البرنامج نوع الصدفة، ويجب أن يكون أول محرفين في ذلك السطر <code>!#</code>، ثم يتلو ذلك مسار الصدفة التي ستنفِّذ البرنامج. كذلك لا تبدأ برنامجك بسطر فارغ إذ تُقرأ الأسطر الفارغة على أنها أسطر أيضًا، وستبدأ كل البرامج في هذا الشرح بالسطر التالي:<syntaxhighlight lang="bash"> | |||
#!/bin/bash | |||
</syntaxhighlight>يشير السطر السابق أن Bash موجودة في <code>bin/</code>. | |||
== إضافة تعليقات == | |||
يجب أن تدرك أن برنامجك قد يطلع عليه غيرك ويقرؤه، فإن كثيرًا من المستخدمين ومدراء النظم يستخدمون برامج للصدفة كتبها غيرهم، فإن كنت ترغب في أن يفهم أولئك المستخدمين أسلوب كتابتك لبرنامجك فعليك أن تسجل فيه تعليقات عما فعلته فيه. | |||
بل إن التعليقات تيسّر عليك أنت أمر التعديل في البرنامج والرجوع إلى ما كتبت مرة أخرى، فلنقل أنك قرأت كثيرًا من صفحات <code>man</code> لتحقق نتيجة معينة بأحد الأوامر التي استخدمتها في برنامجك ثم احتجت أن تغير شيفرتك تلك بعدها، كيف ستتذكر شكل البرنامج الأول بعد أسبوعين من التغيير الجديد إن لم تكن قد سجلت تعليقات فيه بما فعلت وكيف فعلته، والسبب الذي دفعك لاختيار تلك الأوامر أو التعديلات؟ | |||
انسخ ملف <code>script1.sh</code> في مثال [[Bash/creating and running a script|إنشاء وتشغيل برنامج Bash]] وسمّه <code>commented-script1.sh</code>، وسنعدّل محتواه بحيث تصف التعليقات ما تفعله الأوامر، انتبه إلى أن أي شيء تقابله الصدفة بعد علامة <code>#</code> في أي سطر فإنها تتجاهله، ولا يظهر إلا عند فتح الملف المصدري للبرنامج:<syntaxhighlight lang="bash"> | |||
#!/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." | |||
COLOUR="black" # اضبط متغير محلي للصدفة | |||
VALUE="9" # اضبط متغير محلي للصدفة | |||
echo "This is a string: $COLOUR" # اعرض محتوى المتغير | |||
echo "And this is a number: $VALUE" # اعرض محتوى المتغير | |||
echo | |||
echo "I'm giving you back your prompt now." | |||
echo | |||
</syntaxhighlight>تكون أول أسطر في برامج الصدفة عادة عبارة عن تعليقات تشرح طبيعة المهام التي ينفذها البرنامج، ثم يُصحب كل قطعة من الشيفرة بتعليق أو أكثر للتوضيح. ستجد مثالًا على ذلك في مجلد <code>init.d</code> في نظامك، إذ أن شيفرات init موثقة جيدًا لأنها معرضة للقراءة والتعديل من أي مستخدم للينكس. | |||
== انظر أيضًا == | |||
* [[Bash/writing interactive scripts|كتابة برامج Bash تفاعلية]]. | |||
* [[Bash/introduction to functions|مقدمة إلى الدوال في Bash]]. | |||
* [[Bash/building blocks|وحدات البناء الأساسية في Bash]]. | |||
== مصادر == | |||
* [http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_02.html دليل Bash للمبتدئين. قسم 2.2]. |
مراجعة 03:12، 31 يوليو 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."
COLOUR="black" # اضبط متغير محلي للصدفة
VALUE="9" # اضبط متغير محلي للصدفة
echo "This is a string: $COLOUR" # اعرض محتوى المتغير
echo "And this is a number: $VALUE" # اعرض محتوى المتغير
echo
echo "I'm giving you back your prompt now."
echo
تكون أول أسطر في برامج الصدفة عادة عبارة عن تعليقات تشرح طبيعة المهام التي ينفذها البرنامج، ثم يُصحب كل قطعة من الشيفرة بتعليق أو أكثر للتوضيح. ستجد مثالًا على ذلك في مجلد init.d
في نظامك، إذ أن شيفرات init موثقة جيدًا لأنها معرضة للقراءة والتعديل من أي مستخدم للينكس.