مضى على الشبكة و يوم من العطاء.

User input الدرس الثالث

  • بادئ الموضوع بادئ الموضوع speed
  • تاريخ البدء تاريخ البدء

speed

./عضو جديد

السمعة:

نود اليوم ان نقوم بتقديم طرق اخري من المدخلات وقد درسناها في القسم السابق بطريقه اخري وسنري اليوم ايهما افضل ومتي نستخدم اي طريقه
اطلب من المستخدم الادخال
في لغه الباش اذا اردنا من المستحدم الادخال فاننا نستخدم امر read

ياخذ هذا الامر المدخلات ويحفظها في متغير
دعنا ناخذ مثال
كود:
#!/bin/bash
# Ask the user for his name
echo Hello, what is your name?
read varname
echo It\'s nice to meet you $varname
image

دعنا نجرب
دعنا ناخذ المزيد مع read

يمكنك تغيير سلوك القراءة باستخدام مجموعة متنوعة من خيارات سطر الأوامر ومع ذالك هناك خياران شائعين
وهما read -p يسمج لك بتحديدموجه الذي يجعل الادخال صامتا و -sp يجعل الادخال صامتا وهذا سوف ينفعنا في المثال القادم
كود:
#!/bin/bash
# Ask the user for login details
read -p 'Username: ' user
read -sp 'Password: ' pass
echo
echo Thankyou $user we now have your login details
2023-06-19_18-41


الان دعنا نجرب

image


لم يكن افضل شي ولاكن كانت خطوه جبده
المزيد من المتغيرات
حتي الان نظرنا الي كلمه واحده بمكنك ان تفعل اكثر من ذالك
دعنا نجرب ونري

كود:
#!/bin/bash
# Who is the best sh3ll member?
echo Who thinks he is the best member here?
read mem1 mem2 mem3
echo Yes he is the best member here: $mem1
echo Yes he is the second best member here: $mem2
echo Yes he is the third best member here: $mem3
الان لنجرب ونري

image

## القراءة من STDIN
من الشائع في Linux توصيل سلسلة من الأوامر البسيطة ذات الغرض الواحد معًا لإنشاء حل أكبر مصمم وفقًا لاحتياجاتنا الدقيقة. القدرة على القيام بذلك هي إحدى القوى الحقيقية لنظام Linux. اتضح أنه يمكننا بسهولة استيعاب هذه الآلية مع البرامج النصية الخاصة بنا أيضًا. من خلال القيام بذلك ، يمكننا إنشاء نصوص برمجية تعمل كمرشحات لتعديل البيانات بطرق محددة لنا

تستوعب Bash الأنابيب وإعادة التوجيه عن طريق الملفات الخاصة. تحصل كل عملية على مجموعة ملفات خاصة بها (واحدة لـ STDIN و STDOUT و STDERR على التوالي) ويتم ربطها عند استدعاء الأنابيب أو إعادة التوجيه. تحصل كل عملية على الملفات التالية:

  • STDIN - / proc / / fd / 0
  • STDOUT - / proc / / fd / 1
  • STDERR - / proc / / fd / 2
ولجعل الامر اكثر سهوله قوم النظام بإنشاء بعض الاختصارات لنا
  • STDIN - / dev / stdin أو / proc / self / fd / 0
  • STDOUT - / dev / stdout أو / proc / self / fd / 1
  • STDERR - / dev / stderr أو / proc / self / fd / 2
يشير fd في المسارات في الاعلي إلى واصف الملف.

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

دعنا ناخذ مثال
كود:
#!/bin/bash
# A basic summary of my sales report
echo Here is a summary of the sales data:
echo ====================================
echo
cat /dev/stdin | cut -d' ' -f 2,3 | sort
1. echo Here is a summary of the sales data: يقوم بطباعة جملة “Here is a summary of the sales data:”.
2. echo ==================================== يقوم بطباعة سطر فارغ، ثم يقوم بطباعة سلسلة محددة من علامات “=” لإنشاء خط تحت عنوان النص.
3. echo يقوم بطباعة سطر فارغ.
4. cat /dev/stdin | cut -d’ ’ -f 2,3 | sort يقوم بقراءة الإدخال المستخدم من stdin (مدخل البيانات القياسي)، ويقوم بتقسيم البيانات في الأعمدة باستخدام الفاصل المحدد كمسافة (cut -d’ ’ -f 2,3)، ثم يقوم بفرز البيانات المقسمة (sort).


الان لنجرب

image


ويمكنك التلاعب بالاعمد عن طريق cut وخيار -f
إذن ما الذي يجب أن أستخدمه؟
لدينا الآن 3 طرق للحصول على مدخلات من المستخدم

⚪ Command line arguments
⚪ Read input during script execution
⚪ Accept data that has been redirected into the Bash script via STDIN

ولاكن تذكر كل طريقه تعتمد علي موقفك انت

stuff we learnt

قراءة varName
قراءة المدخلات من المستخدم وتخزينها في المتغير varName.
/ div / stdin
ملف يمكنك قراءته للحصول على STDIN لبرنامج Bash النصي

قم بإنشاء نص برمجي بسيط يطلب من المستخدم بعض المعلومات ثم قم بدمجها في رسالة يتم ترديدها علي الشاشة

أضف إلى البرنامج النصي السابق لإضافة بعض البيانات القادمة من argument سطر الأوامر وربما بعض متغيرات النظام الأخرى


قم بإنشاء برنامج نصي يأخذ البيانات من STDIN ويطبع السطر الثالث فقط
 

المرفقات

  • 0619.mp4
    541.2 KB
التعديل الأخير:
الله يعطيك العافيه سبيد <3

استمر يا زعيم 😍
 
  • Like
التفاعلات: speed

آخر المشاركات

عودة
أعلى