كثير روبي البرامج النصية ليس لها نص أو واجهات رسومية. إنهم ببساطة يركضون ويقومون بعملهم ثم يخرجون. للتواصل مع هذه البرامج النصية من أجل تغيير سلوكها ، يجب استخدام وسيطات سطر الأوامر.
سطر الأوامر هو الوضع القياسي للتشغيل لأوامر UNIX ، ومنذ استخدام روبي على نطاق واسع أنظمة UNIX وأنظمة UNIX (مثل Linux و macOS) ، من الطبيعي أن تواجه هذا النوع من الأنظمة برنامج.
كيفية توفير وسيطات سطر الأوامر
يتم تمرير وسيطات البرنامج النصي Ruby إلى برنامج Ruby بواسطة shell ، وهو البرنامج الذي يقبل الأوامر (مثل bash) على الجهاز الطرفي.
في سطر الأوامر ، يعتبر أي نص يتبع اسم البرنامج النصي وسيطة سطر أوامر. مفصولة بمسافات ، سيتم تمرير كل كلمة أو سلسلة كوسيطة منفصلة لبرنامج روبي.
يوضح المثال التالي بناء الجملة المناسب لاستخدامه في تشغيل test.rb النصي روبي من سطر الأوامر مع الحجج اختبار 1 و اختبار 2.
$ ./test.rb test1 test2
قد تواجه موقفًا تحتاج فيه إلى تمرير وسيطة إلى برنامج Ruby ولكن توجد مساحة في الأمر. يبدو الأمر مستحيلًا في البداية نظرًا لأن الصدفة تفصل بين الحجج على المساحات ، لكن هناك نصًا لذلك.
لن يتم فصل أي وسيطات في علامات اقتباس مزدوجة. تتم إزالة علامات الاقتباس المزدوجة بواسطة shell قبل تمريرها إلى برنامج Ruby.
المثال التالي يمرر وسيطة واحدة إلى test.rb النصي روبي ، test1 test2:
$ ./test.rb "test1 test2"
كيفية استخدام وسيطات سطر الأوامر
في برامج روبي الخاصة بك ، يمكنك الوصول إلى أي وسيطات سطر الأوامر التي مرت بها قذيفة مع ARGV متغير خاص. ARGV هو متغير Array يحمل ، كسلسلة ، كل وسيطة مرت بها shell.
هذا البرنامج يتكرر عبر ARGVمجموعة مصفوفة وطباعة محتوياته:
#! / usr / bin / env ruby. ARGV.each do | a | يضع "الوسيطة: # {a}" النهاية
فيما يلي مقتطف من جلسة باش التي أطلقت هذا البرنامج النصي (تم حفظه كملف test.rb) مع مجموعة متنوعة من الحجج:
$ ./test.rb test1 test2 "ثلاثة أربعة" الوسيطة: test1. وسيطة: test2. الحجة: ثلاثة أربعة