speed
./عضو جديد



السمعة:
- إنضم3 مايو 2023
- المشاركات 26
- مستوى التفاعل 74
- النقاط 13
نود اليوم ان نقوم بتقديم طرق اخري من المدخلات وقد درسناها في القسم السابق بطريقه اخري وسنري اليوم ايهما افضل ومتي نستخدم اي طريقهالمقدمه
في لغه الباش اذا اردنا من المستحدم الادخال فاننا نستخدم امر readاطلب من المستخدم الادخال
ياخذ هذا الامر المدخلات ويحفظها في متغير
دعنا ناخذ مثالread var
كود:
#!/bin/bash
# Ask the user for his name
echo Hello, what is your name?
read varname
echo It\'s nice to meet you $varname
دعنا ناخذ المزيد مع 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
الان دعنا نجرب
لم يكن افضل شي ولاكن كانت خطوه جبده
حتي الان نظرنا الي كلمه واحده بمكنك ان تفعل اكثر من ذالكالمزيد من المتغيرات
دعنا نجرب ونري
كود:
#!/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
من الشائع في Linux توصيل سلسلة من الأوامر البسيطة ذات الغرض الواحد معًا لإنشاء حل أكبر مصمم وفقًا لاحتياجاتنا الدقيقة. القدرة على القيام بذلك هي إحدى القوى الحقيقية لنظام Linux. اتضح أنه يمكننا بسهولة استيعاب هذه الآلية مع البرامج النصية الخاصة بنا أيضًا. من خلال القيام بذلك ، يمكننا إنشاء نصوص برمجية تعمل كمرشحات لتعديل البيانات بطرق محددة لنا## القراءة من STDIN
تستوعب 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
لذا ، إذا أردنا أن نجعل البرنامج النصي الخاص بنا قادرًا على معالجة البيانات التي يتم نقلها إليها ، فكل ما نحتاج إليه هو قراءة الملف ذي الصلة. جميع الملفات المذكورة أعلاه تتصرف مثل الملفات العادية
دعنا ناخذ مثال
كود:
#!/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
2. echo ==================================== يقوم بطباعة سطر فارغ، ثم يقوم بطباعة سلسلة محددة من علامات “=” لإنشاء خط تحت عنوان النص.
3. echo يقوم بطباعة سطر فارغ.
4. cat /dev/stdin | cut -d’ ’ -f 2,3 | sort يقوم بقراءة الإدخال المستخدم من stdin (مدخل البيانات القياسي)، ويقوم بتقسيم البيانات في الأعمدة باستخدام الفاصل المحدد كمسافة (cut -d’ ’ -f 2,3)، ثم يقوم بفرز البيانات المقسمة (sort).
الان لنجرب
ويمكنك التلاعب بالاعمد عن طريق cut وخيار -f
لدينا الآن 3 طرق للحصول على مدخلات من المستخدمإذن ما الذي يجب أن أستخدمه؟



ولاكن تذكر كل طريقه تعتمد علي موقفك انت
stuff we learntملخص
قراءة varName
قراءة المدخلات من المستخدم وتخزينها في المتغير varName.
/ div / stdin
ملف يمكنك قراءته للحصول على STDIN لبرنامج Bash النصي
قم بإنشاء نص برمجي بسيط يطلب من المستخدم بعض المعلومات ثم قم بدمجها في رسالة يتم ترديدها علي الشاشةأنشطة
أضف إلى البرنامج النصي السابق لإضافة بعض البيانات القادمة من argument سطر الأوامر وربما بعض متغيرات النظام الأخرى
قم بإنشاء برنامج نصي يأخذ البيانات من STDIN ويطبع السطر الثالث فقط
المرفقات
التعديل الأخير: