Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

مدخلات المستخدم في الـ 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)، يمكنك كتابة سكربت واحد يعمل بشكل مختلف بناءً على ما يقدمه المستخدم في كل مرة يقوم فيها بتشغيله.

challenge icon

التحدي

سهل

أنشئ سكريبت bash يسمى greeter.sh يطلب من المستخدم لونه المفضل ثم يعرض رسالة باستخدام ما أدخله.

يجب أن يقوم السكريبت الخاص بك بـ:

  1. البدء بسطر shebang وهو (#!/bin/bash)
  2. استخدام read مع خيار -p لعرض الرسالة: What is your favorite color?
  3. تخزين المدخلات في متغير يسمى color
  4. استخدام 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!" لعرض النتيجة.

جرّب بنفسك

الطرفية
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات