سؤال

كتابة البرامج النصية من أجل عملية automisation في منصة لينكس ، والتي لغة البرمجة سيكون أفضل ؟ قذيفة النصي Perl أو Python أو هل هناك أي شيء آخر ؟ أنا جديدة على كل منهم.لذلك أنا مجرد التفكير في أن أي واحد للذهاب ؟

هل كانت مفيدة؟

المحلول

الجواب هو:ما يناسب الوظيفة!

حكم بلدي من الإبهام.

باش - لفترة قصيرة السيناريو التي قد تحتاج لحلقة أن تفعل شيئا بشكل متكرر.

بيرل - أي شيء للقيام مع بعض نوع من نص أو تجهيز أو معالجة ملف, لا سيما إذا كان أحد إيقاف.لا مجرد قذرة سيئة perl و انتهينا

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

نصائح أخرى

تذهب كل ثلاثة منهم ، مع بدء باش/أوك/sed بالإضافة إلى fileutils (البقرى ، نجد ، وما إلى ذلك) ومن ثم الارتقاء في التجريد الهرمي مع perl و python.

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

عند اختيار لغة البرمجة للمساعدة في أتمتة الخاص بك لينكس / يونكس البيئة أهم شيء في رأيي هو...استبدال الخاص بك :-)

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

في حين أن الاتفاق مع تعليقات أخرى هنا ، اقتراحي سيكون سيد باش - حيث من الممكن لا قدر الإمكان في باش, حيث أن معظم الناس لا يعرفون ذلك ، يمكن الحفاظ على / في تصحيح ذلك.وأنها سوف تكون أكثر المحمولة.استخدام مع sed & awk هي قوية بشكل خاص.

عندما يكون لديك أن يتقن يمكنك أن تأتي إلى هنا و تسأل "ما لغة البرمجة يجب أن تعلم بعد باش؟" :-)

JB

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

يمكنني استخدام بيرل شئ وراء للغاية "البرامج النصية بسيطة".

أنا أيضا 'use warnings', 'use strict', تجنب backticks ، استدعاء النظام 'system($command, @and_args)'.و لأنني أحب أن يكون للصيانة:التصنيف::تشغيل (الأنابيب) ، ملف::فو (على أسماء الملفات ، tempfiles ، إلخ) ، YAML (على التكوينات أو misc البيانات) ، Getopt::المفيد (حتى أستطيع أن أتذكر ما كانت الخيارات.)

يعتمد على مدى تعقيد المشكلة المجال من المهمة في متناول اليد.

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

PHP يمكن أيضا أن تستخدم لأتمتة المهام, ومع ذلك فإنه ليس من المقبول على نطاق واسع لهذا الغرض في تجربتي.

يتعلق الأمر في الواقع إلى أي لغة كنت الأكثر اهتماما في التعلم أكثر يمكن أن تستخدم في أتمتة ، بالإضافة إلى العديد من الأشياء الأخرى.

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

إذا كنت بحاجة إلى منطق معقد, أنا عادة استخدام بيثون.من قبل مجمع أعني أي شيء يحتوي على أكثر من اثنين إذا -البيانات =)

بيرل هو الغرض الأصلي, لكنه حذر من أن العديد من perlisms كنت تعلم غير قابلة للتطبيق في أي مكان آخر.

بايثون و روبي هي تقريبا ما يعادلها.أنصحك بأن تتعلم منها بشكل جيد و تحقق من البرنامج التعليمي من جهة أخرى.أنا أفضل الثعبان ولكن الأمر في الواقع إلى تفضيل شخصي.

لتلخيص: تعلم أساسيات البرامج النصية قذيفة.تعلم على الأقل بايثون او روبي جيدا.

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

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

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

حظا سعيدا

حسنا, انها مثل هذا:

بيرل لا أكثر الاستعمال لغة البرمجة, ولكن لديها CPAN (شاملة بيرل أرشيف الشبكة) ، والذي يحتوي على الآلاف من مكتبات تنفيذ أي شيء تقريبا كنت قد يفكر و Perl هو قوي حقا عندما يتعلق الأمر معالجة النصوص.العيب أن كود بيرل هو من الصعب للحفاظ على (إذا كنت لا تعرف ذلك جيدا).

بيثون هي لغة البرمجة التي أصبحت أكثر وأكثر شعبية بين scripters.فإنه لا يجب على المجتمع مثل CPAN (حتى الآن) ، لكنه أكثر قابلية للقراءة ، وأنه من السهل للمحافظة عليه.إنه بأسرع بيرل.

روبي هي أحدث اتجاه في لغات البرمجة.روبي OOP الكامل ، وهو ما يعني أن كل ما هو كائن.ميزته هو أن الرمز جدا للقراءة ، وأنه من السهل جدا للتعلم, إذا كنت مبتدئا.العيب الرئيسي هو سرعة التنفيذ ، وهو نوع s*x.

ذلك يعتمد على أي نوع من أتمتة كنت تفعل مثل إذا كان اختبار autoamtion بيرل اقترح لأن بيرل هو أقوى بكثير وحدات التمديد عبر CPAN على الانترنت بيرل وحدة المخزون.إذا كنت بحاجة فقط أداة قوية لاستكمال بسيط الملف المصدر ، awk مريحة جدا.إذا كنت تخطط لاستخدام البرامج النصية لأتمتة مشروع كبير, Perl هو خيار أفضل مع المزيد من الميزات.مرة أخرى الثعبان تم تصميمه من البداية وجوه المنحى لغة.Perl 5 لديه بعض o-o الميزات المضافة ، ولكن يبدو لي حرج التحديثية.الثعبان قد نفذت بشكل جيد o-o ميزات متعددة الميراث والتعدد و التغليف.n ملخص, يبدو لي أن الثعبان يهيمن بيرل في معظم التطبيقات باستثناء قصيرة نسبيا قذيفة النصي أنواع التطبيقات ، وهناك هم مقاربا.

إذا كنت ترغب في أضيق الحدود, المدمجة حل سريع (أسرع من بيثون/روبي) ثم -> الذهاب لغة البرمجة LUA :-) ومع ذلك لوا سرعة ورمز الاكتناز ويتحقق relativelly صغيرة لوا اللغة الأساسية, حتى إذا كنت تريد "وشملت بطاريات" (aka.كبيرة جدا "المعيار" المكتبات) ثم لوا ليست لك.وإلا فإن الرجال الذين يأتون من C/C++ العالم جدا يتمتع لوا السرعة :-)

p.s.

لوا مقابل روبي 1.9 القياسي (يمكنك أن تبحث أيضا لوا مقابل بيثون 3):

http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=lua&lang2=yarv

يعتمد على ما تريد القيام به, أنا بانتظام استخدام كل منها:

  • شل بسيطة الخلط من الأوامر ربما حلقة أو إذا-البيان.
  • بيرل عندما أكون المضغ الملفات والقيام ببعض استبدال نص و souch الأشياء.
  • الثعبان عندما تحتاج إلى أكثر من المنطق.

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

مجرد كتابة الأوامر الخاصة بك واحدا تلو الآخر ووضعها في ملف وتشغيل هذا الملف مع

promp> bash file

و أول الأتمتة.ثم التعرف باش المتغيرات, حلقات هياكل المراقبة.

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

الخلاصة على الرغم من مثل قيل بوفري ، تأكد من أن لديك الأداة المناسبة لهذا المنصب...

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

إذا كنت تهدف إلى وجود سيناريو بسيط برنامج "السيطرة" على آخر (سطر الأوامر بالطبع) البرنامج, ثم يجب عليك مراجعة Tcl/Tk ، وخاصة اللهجة أتوقع إنهم بسيطة وموجهة نحو تحقيق هذا الهدف - أنه من السهل جدا لإنشاء البرنامج النصي الذي يتحكم ftp و حتى لا سو معهم!

Awk جميل جدا لمعالجة الملفات النصية - لم تكن قوية مثل perl, ولكن أكثر من ذلك بكثير بسيطة ومباشرة (دون الرهيبة الجملة).

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

على لينكس ؟ اختيار السم في الأساس.أنا مثل الثعبان ، والبعض الآخر روبي, لا يزال البعض بيرل.اختيار واحد والذهاب لذلك.:-)

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

قد يبدو هذا غريبا, وقد تم استخدام باش لأكثر من 10 سنوات.لقد بدأت باستخدام PHP5 و كان من الصعب في البداية, ولكن الآن لدي أفضل بكثير قابلة لإعادة الاستخدام رمز قاعدة.

أنا لا أوصى به كنقطة انطلاق على الرغم من!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top