مدخلات المستخدم في الـ Scripts
جزء من قسم الأساسيات في رحلة Terminal على Coddy — الدرس 69 من 82.
المتغيرات مفيدة، ولكن في بعض الأحيان تريد من السكريبت الخاص بك أن يطلب معلومات من المستخدم أثناء تشغيله. يقوم الأمر read بإيقاف السكريبت مؤقتًا وينتظر أن يقوم المستخدم بكتابة شيء ما، ثم يخزن تلك المدخلات في متغير.
إليك كيف تعمل:
#!/bin/bash
echo "What is your name?"
read name
echo "Hello, $name!"عندما يعمل هذا النص البرمجي، فإنه يطبع السؤال، وينتظر حتى يكتب المستخدم اسمه ويضغط على Enter، ثم يحييه. يأخذ الأمر read أي شيء يكتبه المستخدم ويخزنه في المتغير name.
يمكنك جعل الموجه يبدو أنظف باستخدام العلم -p، والذي يجمع بين رسالة الموجه والإدخال في نفس السطر:
#!/bin/bash
read -p "Enter your name: " name
echo "Hello, $name!"يعرض هذا Enter your name: وينتظر الإدخال في السطر نفسه، مما يبدو أكثر تناسقاً وأناقة. يأخذ الخيار -p نص التوجيه كمعامل له، يتبعه اسم المتغير لتخزين الإدخال.
تجعل مدخلات المستخدم السكربتات تفاعلية وقابلة للتكيف. بدلاً من كتابة القيم بشكل ثابت (hardcoding)، يمكنك كتابة سكربت واحد يعمل بشكل مختلف بناءً على ما يقدمه المستخدم في كل مرة يقوم فيها بتشغيله.
التحدي
سهلأنشئ سكريبت bash يسمى greeter.sh يطلب من المستخدم لونه المفضل ثم يعرض رسالة باستخدام ما أدخله.
يجب أن يقوم السكريبت الخاص بك بـ:
- البدء بسطر shebang وهو (
#!/bin/bash) - استخدام
readمع خيار-pلعرض الرسالة:What is your favorite color? - تخزين المدخلات في متغير يسمى
color - استخدام
echoلطباعة:Nice! [color] is a great color!(حيث [color] هو ما أدخله المستخدم)
اجعل السكريبت قابلاً للتنفيذ، ثم قم بتشغيله مع إدخال blue كمدخلات. هذه الطرفية ليست تفاعلية — ولا يمكنها التوقف والانتظار حتى تقوم بالكتابة — لذا أرسل الإجابة إلى السكريبت باستخدام الأنبوب (pipe):
echo "blue" | ./greeter.shيجب أن تكون مخرجاتك:
Nice! blue is a great color!ملاحظة: الرسالة الموجهة
What is your favorite color?لا تظهر هنا. يقومread -pبطباعة رسالته فقط عندما تأتي المدخلات من لوحة المفاتيح، وهنا تأتي من الأنبوب (pipe).
تلميح: أنشئ السكريبت سطرًا بسطر باستخدام
echoمع إعادة التوجيه. استخدمread -p "What is your favorite color? " colorللطلب والتقاط المدخلات، ثمecho "Nice! $color is a great color!"لعرض النتيجة.
جرّب بنفسك
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
7محتوى الملف
Head و Tailعد الكلمات (Word Count)أمر Sortأمر Uniqueأساسيات GrepGrep مع الخياراتملخص - محقق النصوص13أساسيات برمجة Shell
ما هو Shell Script؟إنشاء وتشغيل Scriptالمتغيرات في الـ Scriptsمدخلات المستخدم في الـ Scriptsجملة If الشرطيةحلقة For التكراريةحلقة While التكراريةمراجعة - مخمن الأرقام2التنقل
عرض مسار المجلد الحاليعرض الملفاتتغيير المجلدالمسارات المطلقة مقابل المسارات النسبيةمجلد المنزل ومجلد الجذرخلاصة - حدد مسارك8إعادة التوجيه
المخرجات القياسيةالكتابة فوق ملفالإضافة إلى ملفالمدخلات القياسيةالخطأ القياسيمراجعة - بناء سجل الأحداث11الأذونات
فهم الأذوناتقراءة الأذوناتChmod باستخدام الأرقامChmod باستخدام الرموزملكية الملفاتملخص - إحكام الحماية14مشروع سكربت النسخ الاحتياطي
نظرة عامة على المشروعالحصول على مسار المصدر