OnWorks Linux و Windows Online WorkStations

الشعار

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

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

التحول - الوصول إلى العديد من الحجج

لكن ماذا يحدث عندما نعطي البرنامج عددًا كبيرًا من الحجج مثل هذا:


صورة

[me @ linuxbox ~] $ وضعية بارام *


عدد الحجج: 82

0 دولار = / home / me / bin / posit-param

1 دولار = العناوين

2 دولار = بن

3 دولارات = bookmarks.html

4 دولارات = debian-500-i386-netinst.iso

5 دولارات = debian-500-i386-netinst.jigdo

6 دولارات = debian-500-i386-netinst.template

7 دولارات = debian-cd_info.tar.gz


8 دولارات = سطح المكتب

9 دولارات = dirlist-bin.txt

8 دولارات = سطح المكتب

9 دولارات = dirlist-bin.txt


في هذا النظام النموذجي ، حرف البدل * يتوسع في 82 الحجج. كيف يمكننا معالجة هذا العدد؟ توفر القشرة طريقة ، وإن كانت خرقاء ، للقيام بذلك. ال نقل يؤدي الأمر إلى تحريك جميع المعلمات "لأسفل بمقدار واحد" في كل مرة يتم تنفيذها. في الواقع ، عن طريق استخدام ملفات نقل، من الممكن الحصول عليها بمعامل واحد فقط (بالإضافة إلى $0، الذي لا يتغير أبدًا):



#! / بن / باش


# posit-param2: البرنامج النصي لعرض عدد جميع المتغيرات = 1

بينما [[$ # -gt 0]] ؛ فعل

صدى "Argument $ count = $ 1" count = $ ((count + 1))

تم التحول

#! / بن / باش


# posit-param2: البرنامج النصي لعرض عدد جميع المتغيرات = 1

بينما [[$ # -gt 0]] ؛ فعل

صدى "Argument $ count = $ 1" count = $ ((count + 1))

تم التحول


في كل مرة نقل قيمة $2 إلى $1، قيمة ال $3 إلى $2 وما إلى ذلك وهلم جرا. قيمة ال $# يتم تقليله أيضًا بمقدار واحد.

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

$ 1 مع الوسيطة التالية. هنا البرنامج في العمل:


[me @ linuxbox ~] $ posit- بارام 2 abcd

الحجة 1 = الوسيطة 2 = ب الوسيطة 3 = ج الوسيطة 4 = د

[me @ linuxbox ~] $ posit- بارام 2 abcd

الحجة 1 = الوسيطة 2 = ب الوسيطة 3 = ج الوسيطة 4 = د


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