سكربت شل

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث

سيناريو (سكربت) شيل هو لغة برمجة نصية وكتبت عن قشرة (حوسبة) أو واجهة سطر الأوامر لـ نظام التشغيل. وفي الغالببة تكون بسيطة ويمكن أن نقول عنها لغة برمجة مصممة لتكون مفيدة لمجموعة محددة من المهام. والعمليات النموذجية التي تؤديها مخطوطات قذيفة تشمل معالجة الملف، وتنفيذ برنامج وطباعة النص.والعديد من المترجمين الفوريين شيل مزدوجة كما هي في واجهة سطر الأوامر, مثل مقدمة شل، ويندوز باورشيل أو إم إس-دوس الأمر.كوم. وآخرون مثل سيناريو بل أو الرسومية ويندوز سيناريو المضيف (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 السلسة في لغات مختلفة مع أي تأثير على المستخدمين النهائيين.

مزايا وعيوب[عدل]

وفي كثير من الأحيان، وكتابة السيناريو قذيفة أسرع بكثير من كتابة رمز يعادل في لغات البرمجة الأخرى. وهناك العديد من المزايا تشمل برنامج سهل أو اختيار الملف، بداية سريعة، والتصحيح التفاعلي. ويمكن استخدام برنامج شيل لتوفير الربط والتسلسل وصنع القرار حول البرامج القائمة، وللمخطوطات متوسطة الحجم لعدم وجود خطوة التجميع وهي مميزة. يجعل من السهولة كتابة رمز التصحيح في السيناريو وإعادة تشغيله لكشف وإصلاح الخلل. ويمكن لغير الخبراء المستخدمين استخدام البرمجة النصية لتكييف سلوك البرامج، وبرمجة شل توفرمجالا محدودا لبعض متعدد. ومن ناحية أخرى، برمجة شل معرضة لأخطاء مكلفة. مثل أخطاء كتابة مثل آر إم الترددات اللاسلكية - * / (بدلا من * الترددات اللاسلكية المقصودة /) والفولكلور في المجتمع يونكس؛ مسافة واحدة اضافية يحول الأمر من واحد أن يحذف كل ما في الدلائل الفرعية واحد الذي حذف كل شيء—وأيضا يحاول حذف كل شيء على Root partition. ويمكن تحويل مشاكل مماثلة cp (يونكس) و mv وإساءة استخدام> توجيه يمكن حذف محتويات الملف. وتتألف هذه أكثر تعقيدا من حقيقة أن العديد من أوامر يونيكس تختلف في اسم واحد فقط حرف : cp, cn, سيدي (أمر) ولكن هناك عيب آخر وهو بطء سرعة التنفيذ وضرورة إطلاق عملية جديدة لقيادة قذيفة تقريبا لكي يتم تنفيذها. يمكن إنجاز العمل النصي من خلال إقامة أنابيب التجزئة التي تتسم بكفاءة تصفية (البرامج) أوامر تنفذ أكثر من عمل، والتخفيف من التباطؤ، ولكن السيناريو المعقد عادة ما يتكون من عدة أوامر من حجم أبطأ من البرامج التقليدية المترجمة التي تنفذ أكثر من مهمة أو ما يعادلها. وقد تتواجد هناك عدة مشآكل أيضآ وتسمى مشاكل التوافق بين لاري وول وبيرل وهي كتب شهيرة "انه من الأسهل إلى ميناء قذيفة من شيل".

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

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

أنظر أيضا[عدل]

المراجع[عدل]

وصلات خارجية[عدل]