هذه المقالة عن scripting in UNIX-like systems. لbatch programming in DOS, OS/2 and Windows، طالع Batch file.
Editing a فري بي ‌إس ‌دي shell script for configuring ipfirewall
**شيل سكربت (بالإنجليزية: shell script )‏** هي برنامج كمبيوتر تم تصميمه للعمل بواسطة يونكس شيل (بالإنجليزية:  Unix shell)‏ (وهو مترجم سطر الأوامر command-line interpreter) هناك عدة أنواع من لغات الشيل سكربت وهي تعتبر من لغات السكربت (لغات تستخدم لتنفيذ مجموعة من الاوامر مكتوبة في ملف نصي وليس ملف تنفيذي) ويتم عملها عن طريق واجهة سطر الأوامر لـ نظام التشغيل وتعتبر كانها قشرة خارجية للتعامل مع البرامج.

العمليات التي يتم انجازها بواسطة الشيل سكربت تشمل تنفيذ برنامج أو معالجة أو طباعة نص، هناك نوع من السكربت يسمى المغلف Wrapper وهي تقوم بتهيئة بيئة عمل أو تشغيل برنامج أو تنظيف للكمبيوتر ومهام سابقة أو تسجيل دخول أو غيرها.

وفي الغالببة تكون بسيطة ويمكن أن نقول عنها انها لغة برمجة مصممة لتكون مفيدة لمجموعة محددة من المهام. والعمليات النموذجية التي تؤديها مخطوطات قذيفة تشمل معالجة الملف، وتنفيذ برنامج وطباعة النص.والعديد من المترجمين الفوريين شيل مزدوجة كما هي في واجهة سطر الأوامر، مثل مقدمة شل، ويندوز باورشيل أو إم إس-دوس الأمر.كوم. وآخرون مثل سيناريو بل أو الرسومية ويندوز سيناريو المضيف (WScript.exe), إضافة إلى القدرة على البرمجة بيئات الحوسبة دون الحاجة إلى واجهة سطر الأوامر
وهناك أمثلة أخرى من لغة برمجة تهدف في المقام الأول للبرمجة شل تشمل
DIGITAL Command Language و Job Control Language

قدرات
-----

### اختصارات

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

```
#!/bin/sh
LC\_COLLATE=C ls -FCas "$@"

```

هنا Shebang (Unix) ما يشير إلى مترجم ينبغي استخدامه لتنفيذ بقية البرنامج النصي والخط الثاني يجعل قائمة مع خيارات لمؤشرات تنسيق الملف، والأعمدة، وجميع الملفات (لا يوجد حذف)، وحجم في كتل.ويتم تعيين = LC\_COLLATE جيم ترتيب الافتراضي لعدم اضعاف حالة العلوية والسفلية معا، و"$ @" أسباب لتمريرها، حتى يتسنى لجميع من الخيارات الطبيعية وبناء أخرى معروفة لا تزال قادرة على استخدامه.
وسوف يكون المستخدم قادرا على استخدامه ببساطة بالنسبة للقائمة القصيرة الأكثر شيوعا.

### الوظائف التي على شكل دفعات

شل مخطوطات تسمح بتنفيذ العديد من الأوامر التي من شأنها أن تدخل يدويا في واجهة سطر الأوامر تلقائيا، وبدون الحاجة إلى الانتظار للمستخدم التشغيل في كل مرحلة من مراحل التسلسل. وعلى سبيل المثال، نشاهد في الدليل مع الملفات الثلاثة جيم شفرة المصدر، وبدلا من تشغيله يدويا للأوامراللازمة لبناء أربعة برامج نهائية منها، يمكن للمستخدم أن ينشئ بدلا من ذلك
C shell النصية وهي هنا تساعد على البناء والاحتفاظ بها في الدليل، والتي تقوم بتجميعها تلقائيا:

```
#!/bin/csh
echo compiling...
cc -c foo.c
cc -c bar.c
cc -c qux.c
cc -o myprog foo.o bar.o qux.o 
echo done.

```

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

### تعميم

وظائف دفعة بسيطة ليست غير عادية لمهام معزولة، ولكن باستخدام حلقات شل، والاختبارات، والمتغيرات التي توفر مرونة أكبر للمستخدمين. شيل بورن ثانية لتحويل الصور إلى صور الحياة السياسية في فرنسا بابوا غينيا الجديدة، حيث يتم تقديم أسماء الصورة على سطر الأوامر—ربما عن طريق البدل—بدلا من سرد كل ما يجري داخل السيناريو، ويمكن أن تنشئ مع هذا الملف، وعادة ما حفظ في ملف مثل
الصفحة الرئيسية/اسم المستخدم/بآين/ jpg2png

```
#!/bin/bash
for jpg in "$@" ; do # use $jpg in place of each filename given, in turn
 png="${jpg%.jpg}.png" # find the PNG version of the filename by replacing.jpg with.png
 echo converting "$jpg"... # output status info to the user running the script
 if convert "$jpg" jpg.to.png ; then # use the convert program (common in Linux) to create the PNG in a temp file
 mv jpg.to.png "$png" # if it worked, rename the temporary PNG image to the correct name
 else #...otherwise complain and exit from the script
 echo 'error: failed output saved in "jpg.to.png".' 1>&2
 exit 1
 fi # the end of the "if" test construct
done # the end of the "for" loop
echo all conversions successful # tell the user the good news

```

ويمكن بعد ذلك الأمر jpg2png يتم تشغيلها على الدليل الكامل فقط.

### شئ محتمل

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

مثل أوامر النظام الموحد، ومخطوطات قذيفة حذف كلاسيكي أي نوع من ملحقإت اسم الملف ما لم يقصد به أن يكون قراءة في شل يعمل من خلال آلية خاصة لهذا الغرض ("."، أو مصدر في الدعم).

### البرمجة

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

لغات البرمجة الأخرى
-------------------

ولقد تم إدخال العديد من لغات البرمجة القوية للمهام التي هي كبيرة جدا أو معقدة ليتم التعامل معها بشكل مريح مع البرامج النصية القذيفة العادية، ولكن مزايا نصية مرغوبة والحمل تطوير شاملة، لغة البرمجة المترجمة سيكون غير ملائم. تفاصيل من لغات البرمجة النصية لغة برمجة عالية المستوى مصدر متكرر للمناقشة. ولكن بصفة عامة لغة برمجة واحدة هو الذي يتطلب وجود مترجم.

دورة الحياة
-----------

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

انظر أيضا
---------

* شل يونكسs
* ويندوز باورشيل

المراجع
-------

وصلات خارجية
------------

* *An Introduction To Shell Programming* by Greg Goebel
* *UNIX / Linux shell scripting tutorial* by Steve Parker
* *Shell Scripting Primer* (Apple)
* *What to watch out for when writing portable shell scripts* by Peter Seebach
* Free Unix Shell scripting books

* أيقونة بوابةبوابة تقانة المعلومات
* أيقونة بوابةبوابة برمجة الحاسوب