Linux توقع الأمر

Linux Twq Alamr



تجعل نصوص Bash أتمتة المهام أمرًا سهلاً. هناك العديد من الطرق التي يمكنك من خلالها أتمتة المهام المتكررة المختلفة لتوفير الوقت والجهد، بما في ذلك أتمتة المهام التي تتطلب إدخال المستخدم. علاوة على ذلك، يقدم Linux أوامر مثل 'توقع' لتتمكن بسهولة من استخدام البرامج النصية.

يتيح لك أمر Linux 'توقع' التحكم في كيفية عمل البرامج النصية التي تتطلب إدخال المستخدم لتنفيذها. إذا كان البرنامج النصي الخاص بك يتطلب إدخال المستخدم لمواصلة التنفيذ، فهناك طريقة لكيفية التحكم في هذا التفاعل باستخدام الأمر 'توقع'.







البدء باستخدام أمر توقع Linux

لم يتم تثبيت أمر Linux 'توقع' على نظامك. ومع ذلك، يمكنك استخدام طرق مختلفة لتثبيته. في حالتنا، نستخدم خيار 'apt' لتثبيته باستخدام الأمر التالي:



$ sudo ملائم ثَبَّتَ يتوقع



بمجرد اكتمال العملية، تحقق من الإصدار المتوقع للتأكد من نجاح التثبيت.





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



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

قم بإنشاء برنامج نصي Bash باستخدام محرر نصوص من اختيارك. بمجرد كتابة كود البرنامج النصي الخاص بك، قم بحفظ محرر النصوص والخروج منه.

يجب عليك جعل ملف البرنامج النصي قابلاً للتنفيذ. لذلك، استخدم بناء الجملة التالي وقم بمطابقته مع ملف البرنامج النصي المستهدف الخاص بك:

$ sudo chmod +x < ملف >

لتشغيل البرنامج النصي، استخدم الأمر './' متبوعًا باسم البرنامج النصي. لاحظ كيف يطالب البرنامج النصي بإدخال المستخدم ولا يمكنه الاستمرار إلا عندما نكتب الإدخال.

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

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

في هذه الحالة، يتم تخزين كلمة 'expect' في الموقع /usr/bin/expect.

مرة أخرى، افتح محرر النصوص الخاص بك وقم بإنشاء برنامج نصي آخر. هذه المرة، احفظه بامتداد '.exp' لتعريفه باعتباره نصًا برمجيًا متوقعًا. هناك أربعة أوامر رئيسية يمكنك استخدامها عند كتابة البرنامج النصي المتوقع:

  1. تفرخ – يبدأ عملية جديدة ويتم إضافته لاستدعاء البرنامج النصي الذي ترغب في أتمتة الأقسام التفاعلية.
  2. يرسل - يرسل الرد المطلوب الذي سيتم إدراجه من قبل المستخدم.
  3. يتوقع - يُظهر السطر الموجود في البرنامج النصي الهدف الذي ينتظر الإخراج.
  4. يتفاعل - يبدأ التفاعل مع البرنامج.

في هذه الحالة، لدينا نص 'توقع' الخاص بنا مكتوبًا كما هو موضح في ما يلي. لقد سلطنا الضوء على النص المستهدف وأعطينا خيارات 'التوقع' والاستجابة التي سيحصلون عليها.

يُظهر السطر الأخير نهاية البرنامج النصي ويجب تضمينه عندما تكتب برنامجًا نصيًا 'متوقعًا'. اجعل البرنامج النصي 'توقع' قابلاً للتنفيذ باستخدام 'chmod'.

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

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

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

العمل مع توقع تلقائي

يمكنك تجنب إنشاء البرنامج النصي 'توقع' باستخدام أمر 'التوقع التلقائي'. كيف يعمل هذا هو تشغيل الأمر 'autoexpect' متبوعًا بالبرنامج النصي الذي ترغب في إنشاء برنامج نصي 'توقع' له.

على سبيل المثال، النص الأولي الخاص بنا هو 'sample.sh'. للقيام بذلك، نستخدم 'autoexpect' مع الأمر التالي:

$ توقع تلقائي. / عينة.sh

بمجرد تشغيله، يتم تلقائيًا إنشاء برنامج نصي 'توقع' جديد تحت اسم 'script.sh'، وستتم مطالبتك بإعطاء الاستجابات المتوقعة لمدخلات المستخدم.

كل ما تحتاجه هو تشغيل البرنامج النصي الذي تم إنشاؤه، ويمكنك تبسيط العملية من خلال إلغاء الحاجة إلى إنشاء البرنامج النصي 'المتوقع' يدويًا.

خاتمة

يساعد الأمر 'توقع' في أتمتة مدخلات المستخدم التفاعلية عند إنشاء برنامج نصي لـ Bash. بمجرد تقديم القيم المتوقعة، سيتم تشغيل البرنامج النصي الخاص بك دون توقف، على الرغم من أن إدخال المستخدم مطلوب. لقد رأينا مثالاً للعمل باستخدام أمر 'توقع'، بما في ذلك كيفية إنشاء برنامج نصي 'توقع' باستخدام برنامج التوقعات التلقائية تلقائيًا. هذا كل شيء!