OnWorks Linux و Windows Online WorkStations

الشعار

استضافة مجانية على الإنترنت لمحطات العمل

<السابق | المحتويات | التالي>

في حين

يمكن أن تعبر باش عن فكرة مماثلة. لنفترض أننا أردنا عرض خمسة أرقام بالتسلسل-


ترتيب tial من واحد إلى خمسة. أ سحق يمكن إنشاء البرنامج النصي على النحو التالي:


#! / بن / باش


# while-count: اعرض سلسلة من الأرقام العدد = 1

بينما [[$ count -le 5]] ؛ فعل echo $ count = $ ((count + 1))

فعل

صدى "انتهى".

#! / بن / باش


# while-count: اعرض سلسلة من الأرقام العدد = 1

بينما [[$ count -le 5]] ؛ فعل echo $ count = $ ((count + 1))

فعل

صدى "انتهى".


عند تنفيذه ، يعرض هذا البرنامج النصي ما يلي:



[me @ linuxbox ~] $ أثناء العد

1

2

3

4

5

تم الانتهاء من.

[me @ linuxbox ~] $ أثناء العد

1

2

3

4

5

تم الانتهاء من.


بناء جملة في حين الأمر هو:

في حين الأوامر؛ فعل الأوامر؛ انتهى

اعجاب if, في حين بتقييم حالة الخروج من قائمة الأوامر. طالما أن حالة الخروج هي صفر ، فإنها تنفذ الأوامر داخل الحلقة. في النص أعلاه ، المتغير عد تم إنشاؤه وتعيين قيمة أولية لـ 1. في حين يقوم الأمر بتقييم حالة الخروج من [[]] أمر مركب. طالما أن ملف [[]] يقوم الأمر بإرجاع حالة الخروج من الصفر ، ويتم تنفيذ الأوامر داخل الحلقة. في نهاية كل دورة ، يكون ملف [[]] يتكرر الأمر. بعد خمس تكرارات للحلقة ، تكون قيمة عد ارتفع إلى 6 ، [[]] لم يعد الأمر يُرجع حالة الخروج من الصفر وتنتهي الحلقة. يستمر البرنامج مع العبارة التالية التي تلي الحلقة.

يمكننا استخدام ملف حائط اللوب لتحسين قائمة القراءة برنامج من الفصل السابق:


#! / بن / باش


# while-menu: برنامج معلومات نظام يحركه القائمة

#! / بن / باش


# while-menu: برنامج معلومات نظام يحركه القائمة


تأخير = 3 # عدد الثواني لعرض النتائج


بينما [[$ REPLY! = 0]] ؛ فعل

واضح

قطة << - _EOF_

الرجاء التحديد:


1. عرض معلومات النظام

2. عرض مساحة القرص

3. عرض استخدام مساحة المنزل

0. قم بإنهاء


_EOF_

read -p "أدخل التحديد [0-3]>"


إذا [[$ REPLY = ~ ^ [0-3] $]] ؛ ثم إذا [[$ REPLY == 1]] ؛ من ثم

صدى وقت تشغيل "Hostname: $ HOSTNAME"

ينام $ DELAY

fi

إذا [[$ REPLY == 2]] ؛ ثم df -h

ينام $ DELAY

fi

إذا [[$ REPLY == 3]] ؛ من ثم

إذا [[$ (id -u) -eq 0]]؛ من ثم

صدى "Home Space Utilization (All Users)" du -sh / home / *

آخر

صدى "Home Space Utilization ($ USER)" du -sh $ HOME

fi

ينام $ DELAY

fi

آخر

صدى "إدخال غير صالح".

ينام $ DELAY

fi

فعل

صدى "تم إنهاء البرنامج".

تأخير = 3 # عدد الثواني لعرض النتائج


بينما [[$ REPLY! = 0]] ؛ فعل

واضح

قطة << - _EOF_

الرجاء التحديد:


1. عرض معلومات النظام

2. عرض مساحة القرص

3. عرض استخدام مساحة المنزل

0. قم بإنهاء


_EOF_

read -p "أدخل التحديد [0-3]>"


إذا [[$ REPLY = ~ ^ [0-3] $]] ؛ ثم إذا [[$ REPLY == 1]] ؛ من ثم

صدى وقت تشغيل "Hostname: $ HOSTNAME"

ينام $ DELAY

fi

إذا [[$ REPLY == 2]] ؛ ثم df -h

ينام $ DELAY

fi

إذا [[$ REPLY == 3]] ؛ من ثم

إذا [[$ (id -u) -eq 0]]؛ من ثم

صدى "Home Space Utilization (All Users)" du -sh / home / *

آخر

صدى "Home Space Utilization ($ USER)" du -sh $ HOME

fi

ينام $ DELAY

fi

آخر

صدى "إدخال غير صالح".

ينام $ DELAY

fi

فعل

صدى "تم إنهاء البرنامج".


من خلال إرفاق القائمة في حلقة while ، يمكننا جعل البرنامج يكرر عرض القائمة بعد كل تحديد. الحلقة تستمر طالما الرد لا تساوي "0" ويتم عرض القائمة مرة أخرى ، مما يتيح للمستخدم فرصة الاختيار مرة أخرى. في نهاية كل عمل ، أ النوم يتم تنفيذ الأمر حتى يتوقف البرنامج مؤقتًا لبضع ثوان للسماح برؤية نتائج التحديد قبل مسح الشاشة وإعادة عرض القائمة. مرة واحدة الرد يساوي "0" ، مما يشير إلى اختيار "إنهاء" ،


تنتهي الحلقة ويستمر التنفيذ بالسطر التالي فعل.


أفضل الحوسبة السحابية لنظام التشغيل في OnWorks: