الفرق بين المراجعتين لصفحة: «Bash/creating and running a script»

من موسوعة حسوب
إدخال العنوان
 
إدخال أولي وتنسيق.
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:كتابة وتنقيح برامج Bash}}</noinclude>
<noinclude>{{DISPLAYTITLE:كتابة وتنقيح برامج Bash}}</noinclude>
== الكتابة والتسمية ==
إن كان لديك سلسلة أوامر تنفذها بشكل متكرر وتريد اختصار وقت تنفيذها أو تنفيذها بشكل آلي، فيمكنك وضعها في ملف فارغ يكتب بصيغة معينة وتقرؤه الصدفة على أنه برنامج تنفذه عند استدعاءه بكتابة اسم الملف الذي يحويه، وتسمى تلك البرامج ببرامج الصدفة أو شيفرات الصدفة النصية (Shell Scripts).
ويمكن استخدام تلك البرامج لأتمتة المهام باستخدام أداة <code>cron</code> أو في إجراءات الإقلاع وإيقاف التشغيل في أنظمة يونكس، حيث يُحدَّد أسلوب عمل العفاريت (daemons) والخدمات في شيفرات init النصية (init scripts).
ولإنشاء برنامج للصدفة، افتح ملفًا فارغًا في المحرر النصي الذي تفضله، إذ لا يهم هنا نوع المحرر الذي تستخدمه فأغلبها يقوم بالمهمة التي نريدها الآن، وهي كتابة برنامج لصدفة bash، فاستخدم ViM إن شئت أو emacs أو gedit أو dtpad أو غير ذلك.
لكن ما قد يجعلك تستخدم محررًا متطورًا مثل ViM أو emacs على ما سواهما هو أنه يمكنك تهيئتهما للتعرف على النصوص التي تكتبها وإبرازها بألوان مختلفة  -ومن ذلك نصوص وأوامر الصدفة التي سنكتبها-، وذلك يقلل الأخطاء التي يقع فيها المبتدئون عادة مثل إغفال إغلاق قوسين <code>()</code> أو نسيان الفواصل المنقوطة <code>;</code> .<blockquote>'''إبراز النصوص في ViM'''</blockquote><blockquote>استخدم أحد الأوامر الثلاثة التالية من أجل إبراز النصوص (Text Highlighting) في محرر ViM:</blockquote><blockquote><code>syntax enable:</code> أو <code>sy enable:</code> أو <code>syn enable:</code></blockquote><blockquote>من المفيد إضافة ذلك الإعداد إلى ملف <code>vimrc.</code> من أجل تقبيته كإعداد افتراضي.</blockquote>ضع أوامر يونكس في الملف الذي أنشأته كما لو كنت ستكتب تلك الأوامر في سطر الأوامر (انظر [[Bash/executing commands|تنفيذ الأوامر في Bash]]). يمكن أن تكون تلك الأوامر دوال للصدفة أو أوامر مضمَّنة فيها أو أوامر يونكس أو غير ذلك.
والآن أعط ذلك الملف اسمًا يصف المهام التي ينفذها وتأكد ألا يتعارض الاسم مع أوامر موجودة مسبقًا، ولضمان ذلك فإن أسماء برامج الصدفة تنتهي غالبًا بـ <code>sh.</code>، لكن هذا لا يمنع وجود شيفرات نصية أخرى في النظام بنفس الاسم الذي تختاره، فابحث في النظام عن ملفات أو شيفرات نصية بنفس الاسم باستخدام أوامر البحث في الملفات والبرامج مثل <code>which</code> أو <code>whereis</code>:<syntaxhighlight lang="bash">
which -a script_name
whereis script_name
locate script_name
</syntaxhighlight><span> </span>

مراجعة 23:56، 30 يوليو 2018


الكتابة والتسمية

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

ويمكن استخدام تلك البرامج لأتمتة المهام باستخدام أداة cron أو في إجراءات الإقلاع وإيقاف التشغيل في أنظمة يونكس، حيث يُحدَّد أسلوب عمل العفاريت (daemons) والخدمات في شيفرات init النصية (init scripts).

ولإنشاء برنامج للصدفة، افتح ملفًا فارغًا في المحرر النصي الذي تفضله، إذ لا يهم هنا نوع المحرر الذي تستخدمه فأغلبها يقوم بالمهمة التي نريدها الآن، وهي كتابة برنامج لصدفة bash، فاستخدم ViM إن شئت أو emacs أو gedit أو dtpad أو غير ذلك.

لكن ما قد يجعلك تستخدم محررًا متطورًا مثل ViM أو emacs على ما سواهما هو أنه يمكنك تهيئتهما للتعرف على النصوص التي تكتبها وإبرازها بألوان مختلفة -ومن ذلك نصوص وأوامر الصدفة التي سنكتبها-، وذلك يقلل الأخطاء التي يقع فيها المبتدئون عادة مثل إغفال إغلاق قوسين () أو نسيان الفواصل المنقوطة ; .

إبراز النصوص في ViM

استخدم أحد الأوامر الثلاثة التالية من أجل إبراز النصوص (Text Highlighting) في محرر ViM:

syntax enable: أو sy enable: أو syn enable:

من المفيد إضافة ذلك الإعداد إلى ملف vimrc. من أجل تقبيته كإعداد افتراضي.

ضع أوامر يونكس في الملف الذي أنشأته كما لو كنت ستكتب تلك الأوامر في سطر الأوامر (انظر تنفيذ الأوامر في Bash). يمكن أن تكون تلك الأوامر دوال للصدفة أو أوامر مضمَّنة فيها أو أوامر يونكس أو غير ذلك. والآن أعط ذلك الملف اسمًا يصف المهام التي ينفذها وتأكد ألا يتعارض الاسم مع أوامر موجودة مسبقًا، ولضمان ذلك فإن أسماء برامج الصدفة تنتهي غالبًا بـ sh.، لكن هذا لا يمنع وجود شيفرات نصية أخرى في النظام بنفس الاسم الذي تختاره، فابحث في النظام عن ملفات أو شيفرات نصية بنفس الاسم باستخدام أوامر البحث في الملفات والبرامج مثل which أو whereis:

which -a script_name
whereis script_name
locate script_name