OnWorks Linux و Windows Online WorkStations

الشعار

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

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

من أجل: نموذج شل التقليدي

الأصلي For صيغة الأمر هي:

For متغير [في كلمات] ؛ فعل

الأوامر

فعل

في متغير هو اسم المتغير الذي سيزيد أثناء تنفيذ الحلقة ، كلمات هي قائمة اختيارية بالعناصر التي سيتم تخصيصها بشكل تسلسلي متغيرو الأوامر هي الأوامر التي سيتم تنفيذها على كل تكرار للحلقة.

For الأمر مفيد في سطر الأوامر. يمكننا بسهولة شرح كيفية عملها:



[me @ linuxbox ~] $ لأني في ABCD ؛ هل صدى $ i؛ انتهى

ا ب ت ث

[me @ linuxbox ~] $ لأني في ABCD ؛ هل صدى $ i؛ انتهى

ا ب ت ث


في هذا المثال، For يتم إعطاء قائمة من أربع كلمات: "أ" و "ب" و "ج" و "د". بقائمة من أربع كلمات ، يتم تنفيذ الحلقة أربع مرات. في كل مرة يتم تنفيذ الحلقة ، يتم ربط كلمة بالمتغير i. داخل الحلقة ، لدينا ملف صدى الأمر الذي يعرض قيمة i لإظهار المهمة. كما هو الحال مع في حين و حتى الحلقات فعل key- كلمة تغلق الحلقة.


الميزة القوية حقًا لـ For هو عدد الطرق الشيقة التي يمكننا من خلالها إنشاء قائمة الكلمات. على سبيل المثال ، من خلال توسيع الدعامة:



[me @ linuxbox ~] $ لأني في {A..D} ؛ هل صدى $ i؛ انتهى

ا ب ت ث

[me @ linuxbox ~] $ لأني في {A..D} ؛ هل صدى $ i؛ انتهى

ا ب ت ث


أو توسيع اسم المسار:



[me @ linuxbox ~] $ لأني في توزيعات * .txt ؛ هل صدى $ i؛ انتهى

distros-by-date.txt توزيعات-date.txt توزيعات مفتاح-أسماء.

توزيعات vernums.txt توزيعات إصدارات. txt

[me @ linuxbox ~] $ لأني في توزيعات * .txt ؛ هل صدى $ i؛ انتهى

distros-by-date.txt توزيعات-date.txt توزيعات مفتاح-أسماء.

توزيعات vernums.txt توزيعات إصدارات. txt


أو استبدال الأمر:



#! / بن / باش

# long-word: البحث عن أطول سلسلة في الملف أثناء [[-n $ 1]]؛ فعل

إذا [[-r $ 1]] ؛ ثم max_word = max_len = 0

لـ i في $ (سلاسل $ 1) ؛ فعل لين = $ (echo -n $ i | wc -c)

إذا ((len> max_len)) ؛ ثم max_len = $ len max_word = $ i

fi

فعل

صدى "$ 1: '$ max_word' ($ max_len من الأحرف)"

فاي التحول

فعل

#! / بن / باش

# long-word: البحث عن أطول سلسلة في الملف أثناء [[-n $ 1]]؛ فعل

إذا [[-r $ 1]] ؛ ثم max_word = max_len = 0

لـ i في $ (سلاسل $ 1) ؛ فعل لين = $ (echo -n $ i | wc -c)

إذا ((len> max_len)) ؛ ثم max_len = $ len max_word = $ i

fi

فعل

صدى "$ 1: '$ max_word' ($ max_len من الأحرف)"

فاي التحول

فعل

من أجل: نموذج شل التقليدي


في هذا المثال ، نبحث عن أطول سلسلة موجودة داخل الملف. عند إعطاء اسم ملف واحد أو أكثر في سطر الأوامر ، يستخدم هذا البرنامج اسم الملف سلاسل البرنامج (المتضمن في حزمة GNU binutils) لإنشاء قائمة من "الكلمات" النصية القابلة للقراءة في كل ملف. ال For تعالج حلقة كل كلمة بدورها وتحدد ما إذا كانت الكلمة الحالية هي الأطول التي تم العثور عليها حتى الآن. عند انتهاء الحلقة ، يتم عرض أطول كلمة.

إذا كان الخيار in كلمات جزء من For تم حذف الأمر ، For افتراضات لمعالجة المعلمات الموضعية. سنقوم بتعديل الخاص بنا أطول كلمة البرنامج النصي لاستخدام هذه الطريقة:



#! / بن / باش

# longest-word2: البحث عن أطول سلسلة في ملف لـ i ؛ فعل

إذا [[-r $ i]]؛ ثم max_word = max_len = 0

لـ j in $ (سلاسل $ i) ؛ فعل لين = $ (echo -n $ j | wc -c)

إذا ((len> max_len)) ؛ ثم max_len = $ len max_word = $ j

fi

فعل

صدى "$ i: '$ max_word' (أحرف max_len $)"

انتهى فاي

#! / بن / باش

# longest-word2: البحث عن أطول سلسلة في ملف لـ i ؛ فعل

إذا [[-r $ i]]؛ ثم max_word = max_len = 0

لـ j in $ (سلاسل $ i) ؛ فعل لين = $ (echo -n $ j | wc -c)

إذا ((len> max_len)) ؛ ثم max_len = $ len max_word = $ j

fi

فعل

صدى "$ i: '$ max_word' (أحرف max_len $)"

انتهى فاي


صورة

كما نرى ، قمنا بتغيير الحلقة الخارجية لاستخدامها For عوضا عن في حين. بحذف قائمة الكلمات في For الأمر ، يتم استخدام المعلمات الموضعية بدلاً من ذلك. داخل الحلقة ، الحالات السابقة للمتغير i تم تغييرها إلى المتغير j. استخدام نقل كما تم القضاء عليه.


لماذا أنا؟

ربما لاحظت أن المتغير i تم اختياره لكل من For أمثلة حلقة أعلاه. لماذا ا؟ لا يوجد سبب محدد في الواقع ، إلى جانب التقاليد. المتغير المستخدم مع For يمكن أن يكون أي متغير صالح ، ولكن i هو الأكثر شيوعًا ، يليه j و k.



صورة

يأتي أساس هذا التقليد من لغة البرمجة فورتران. في For- tran ، المتغيرات غير المعلنة التي تبدأ بالأحرف I و J و K و L و M يتم كتابتها تلقائيًا كأعداد صحيحة ، بينما المتغيرات التي تبدأ بأي حرف آخر تكتب على أنها حقيقية (أرقام بها كسور عشرية). أدى هذا السلوك إلى قيام المبرمجين باستخدام المتغيرات I و J و K لمتغيرات الحلقة ، حيث كان استخدامها أقل جهدًا عند الحاجة إلى متغير مؤقت (مثل متغيرات الحلقة في كثير من الأحيان).

كما أدى إلى الحكمة التالية المستندة إلى لغة فورتران: "الله حقيقي ، ما لم يتم الإعلان عن عدد صحيح".


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