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