مثال 1:
قم بإنشاء ملف bash بالنص التالي. عندما تقوم بتشغيل البرنامج النصي ، سيستمر حتى يضغط المستخدم على أي مفتاح. سينتظر البرنامج النصي إدخال المستخدم كل 3 ثوانٍ وإذا لم يضغط المستخدم على أي مفتاح ، فسيتم طباعة الرسالة ، في انتظار الضغط على المفتاح .
#!/bin/bash
رما - طرد - قذف 'اضغط على أى زر للاستمرار'
في حين [ حقيقية ]؛فعل
اقرأ -t 3 -ن 1
لو [ $؟=0 ]؛من ثم
خروج؛
آخر
رما - طرد - قذف 'انتظار الضغط'
يكون
انتهى
قم بتشغيل البرنامج النصي.
$سحقkey1.sh
انتاج:
المثال الثاني:
قم بإنشاء ملف bash بالنص التالي. يتم استخدام حلقة while اللانهائية في هذا المثال والتي ستنتهي عندما يضغط المستخدم على 'q'. إذا ضغط المستخدم على أي مفتاح بدون 'q' ، فستتم زيادة قيمة متغير العداد بمقدار 1 وطباعة القيمة.
#!/bin/bashرما - طرد - قذف اضغط على 'q' للخروج
عدد=0
في حين:؛فعل
اقرأ -ن 1إلى<&1
لو [[ ك= ف]]؛من ثم
printf 'نالانسحاب من البرنامجن'
استراحة
آخر
((عدد=عدد الدولارات+1))
printf 'نكرر لعدد الدولاراتمراتن'
رما - طرد - قذف اضغط على 'q' للخروج
يكون
انتهى
قم بتشغيل البرنامج النصي.
$سحقkey2.sh
انتاج:
المثال الثالث:
قم بإنشاء ملف bash بالبرنامج النصي التالي الذي سيقوم بأنواع مختلفة من المهام بناءً على المفتاح الذي ضغط عليه المستخدم. إذا ضغط المستخدم على '1' ، فسيضيف وسيطتي سطر أوامر ويطبع. إذا ضغط المستخدم على '2' ، فسيطرح وسيطتي سطر أوامر ويطبع. سيتم تشغيل النص بشكل مستمر حتى يضغط المستخدم على '3'.
#!/bin/bashالإصدار 1=1 دولار
الإصدار 2=2 دولار
في حين:
فعل
رما - طرد - قذف '1. إضافة'
رما - طرد - قذف 2. الطرح '
رما - طرد - قذف 3. استقال'
رما - طرد - قذف -ن 'اكتب 1 أو 2 أو 3:'
اقرأ -ن 1 -t خمسة عشرإلى
printf 'ن'
قضية $ أ في
1* ) رما - طرد - قذف 'v1 دولار+v2 دولار=$ (($ v1 + $ v2)) '؛؛
2* ) رما - طرد - قذف 'v1 دولار-v2 دولار=$ (($ v1- $ v2)) '؛؛
3* ) خروج 0؛؛
* ) رما - طرد - قذف 'حاول مجددا.'؛؛
esac
انتهى
قم بتشغيل البرنامج النصي بقيمتين رقميتين للوسيطة.
$سحقkey3.sh35 خمسة عشرانتاج:
المثال الرابع:
قم بإنشاء ملف bash بالنص التالي. سينتهي البرنامج النصي عندما يضغط المستخدم على مفتاح ESC. سيقوم هذا البرنامج النصي بطباعة المفاتيح التي ضغط عليها المستخدم حتى يتم الضغط على مفتاح ESC.
#!/bin/bashإدخال المستخدم='
رما - طرد - قذف 'اضغط على مفتاح ESC للإنهاء'
# قراءة حرف واحد
في حين اقرأ -r -n1مفتاح
فعل
# إذا كان الإدخال == مفتاح ESC
لو [[ مفتاح $== دولار'و' ]]؛
من ثم
استراحة؛
يكون
# أضف المفتاح إلى المتغير الذي يضغط عليه المستخدم.
إدخال المستخدم + =مفتاح $
انتهى
printf 'نلقد كتبت:$ userinputن'
قم بتشغيل البرنامج النصي.
$سحقkey4.shانتاج:
المثال الخامس:
قم بإنشاء ملف bash بالرمز التالي الذي سينتظر مفتاح ENTER لإنهاء البرنامج النصي. سيأخذ النص البرمجي اسم خادم كمدخل وسيحاول اختبار اتصال الخادم كل ثانيتين. إذا حصل أمر ping على استجابة من الخادم ، فسينهي البرنامج النصي عن طريق عرض الإخراج وإلا سينتظر استجابة المستخدم أو مفتاح ENTER بطباعة الرسالة ، محاولة الاتصال بـ….
#!/bin/bashرما - طرد - قذف 'أدخل عنوان الخادم الذي تريد اختبار الاتصال'
اقرأالخادم
في حين ! بينغ -ج 1 -ن -في 2 خادم $
فعل
رما - طرد - قذف 'أحاول التواصل معخادم $'
رما - طرد - قذف 'اضغط [ENTER] للإنهاء'
اقرأ -س -ن 1 -t 1مفتاح
لو [[ مفتاح $== دولار'x0a' ]]؛# إذا كان الإدخال == مفتاح الإدخال
من ثم
خروج 0
يكون
انتهى
printf '٪سن' 'خادم $يركض'
قم بتشغيل البرنامج النصي.
$سحقkey5.shانتاج:
استنتاج:
يوضح هذا البرنامج التعليمي كيف يمكنك كتابة البرنامج النصي bash بطرق مختلفة تنتظر إدخال المستخدم للقيام بأي مهمة محددة أو إنهاء البرنامج النصي. آمل ، بعد التدرب على الأمثلة المذكورة أعلاه ، ستتمكن من كتابة البرنامج النصي بطريقة يمكن أن تنتظر أي ضغطة مفتاح والقيام بالمهمة المحددة بناءً على المفتاح الذي ضغط عليه المستخدم.