سؤال

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

بعد سنوات قليلة أصدرت Powerhell، والتي بدت مثيرة للاهتمام للغاية. هل هناك أي ابتكار مشابه يحدث في قذائف لينكس؟

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

المحلول

يمكنك تشغيل PowerShell على Linux عبر باش. وبعد يستخدم أحادي الطريق يستخدم PowerShell .NET.

نصائح أخرى

أنت تدرك bash 4 تم إصداره مؤخرا مع حمولة من الميزات الجديدة الإضافات واللغة؟

  • خيارات شل globstar (**/foo) هل البحث العودية، dirspell إصلاح الأخطاء المطبعية أثناء توسيع اسم المسار.
  • المصفوفات الإرهابية، وسلاسل الخرائط إلى السلاسل، بدلا من مجرد أرقام إلى السلاسل.
  • ال autocd يتيح خيار Shell تغيير الأدلة من خلال كتابة مسار الدليل بدلا من الاضطرار إلى وضع cd امام.
  • coprocesses.
  • &>> و |& إعادة توجيه المشغلين الذين يعيد توجيه كليهما stdout و stderr
  • الكثير من الإضافات إلى المائلات الموجودة لتحسين راحة البرمجة النصية.

الدفع:

سألقي نظرة على ZSH أو Fishshell.

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

دعنا نقول أنك تكتب تحميل "على" .. وتريد أن تعمل مثل هذا:

on node 123 run some command
on class nodes run some command
on all nodes run some command

... إلخ ..

يمكنك اتباع أمثلة بسيطة حول كيفية كتابة القابل للتثبيت، ثم تمكينها كأزواج مدمجة في VIA تمكين / مسار / مسار / إلى / Loadable Loadable_name

لذلك في حالتنا، تمكين -f / opt / bash / lixables / on on

... في BASHRC، وحصلت عليه.

لذلك، إذا كنت ترغب في الحصول على باش تفسير لغتك Spiffy الجديدة الخاصة بك أصلا، فسوف تكتب "استخدام" أو "Switch_to" المسمى، ثم قم بتعديل المحلل لتحميل قواعد اللغة / وقت التشغيل المختلفة إذا تم تعيين متغير بيئة معينة.

بمعنى آخر:

#/bin/bash

switch_to my-way-cool-language

funkyfunc Zippy(int p) [[
   jive.wassup(p) ]]

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

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

أعتقد أن "القشرة المحسنة الأصلية" هي KSH93.. وبعد جاء باش إلى حيز الوجود في وقت كان فيه شفرة المصدر KSH مملوكة؛ إذا كان KSH كان مفتوحا للمصدر، فقد لا يكون من الضروري أن يكون لديك قذيفة جديدة (على الرغم من أن FSF أنت لا تعرف أبدا). KSH يستحق الدراسة، خاصة بالنسبة قدرتها على تمديدها من خلال وحدات C، لكنها ليست فوز واضح على باش. تتميز التلقائي باش متفوقا بوضوح، مما قد يكون كافيا لجعل باش فوز بشكل عام. في أي حال، قامت BASH و KSH بذل جهد كبير للتقليل، لذلك الاختلافات قاصرة.

القذيفة الأخرى المثيرة للاهتمام هي زيش, ، التي تحاول أن تكون كل ما تشير فيه KSH إلى ذلك، بما في ذلك CSH أيضا. نظرا لأنني لم أر أي نقطة أو استخدامها ل CSH، فأنا ليس الشخص المناسب للدفاع عن ZSH. سأشير إلى عدم توافق غير عادي: افتراضيا، في ZSH متغير $var دائما يتوسع إلى رمز واحد، حتى لو كان يحتوي على مسافات. هذا السلوك غير متوافق مع جميع الأصداف المشتقة من SH الأخرى، وهو أمر غير مريح في بعض الأحيان، ولكنه حقا يجعل أكثر منطقية بكثير من الأصل، وأنه يوفر جحيم الكثير من الاقتبس.

CSH كانت أول قذيفة لديها مراقبة عمل، ولكن في ذهني (وخلفائها) لم تحلها باش و Ksh. لم يكن أبدا mucn fun لكتابة النصوص في.

أخيرا، هناك العديد من القذائف الصغيرة المصممة ل Rescue Floppies (!) وغيرها من بيئات المتقشفات، لكنها تبدو وكأنها لا تملك مصلحة ضئيلة في تلك.

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

IIRC، PowerShell هو موجه نحو الكائن، في حين أن معظم قذائف UNIX والأدوات المساعدة تعمل على النص. في هذا الصدد، squirrel قذيفة قد تهمك. أنا لم أستخدمها أبدا.

إذا كنت على استعداد لفقدان sh التوافق، يمكنك إلقاء نظرة على استخدام لغة البرمجة النصية مثل Python أو TCL مثل Shell الخاص بك. rlwrap يمكن أن يكون مفيدا جدا إذا كان المترجم لا يوفر تحرير الخط، وسجل الأوامر، والإكمال، إلخ.

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

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

انها ليست بالضبط ببورن شل، ولكنها مختلفة. بالطبع، عليك أن تتعلم مخطط - مكافأة!

إذا كنت تحب Ruby، يمكنك استخدام Rush (Shell Ruby-Unix، وليس IRB)

انظر العرض التقديمي هنا

http://www.slideshare.net/adamwiggins/rush-the-ruby-shell-and-unix-integration-library.

أو الموقع الرسمي لرؤية المزيد من الأمثلة

http://rush.heroku.com/

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