OnWorks Linux ו-Windows Online WorkStations

לוגו

אירוח מקוון בחינם עבור תחנות עבודה

<הקודם | תוכן | הבא>

shift - קבלת גישה להרבה טיעונים

אבל מה קורה כשאנחנו נותנים לתוכנית מספר רב של ארגומנטים כמו זה:


תמונה

[me@linuxbox ~]$ פרמטר חיובי *


מספר הטיעונים: 82

$0 = /home/me/bin/posit-param

$1 = addresses.ldif

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, שלעולם לא משתנה):



#! / bin / bash


# posit-param2: סקריפט להצגת כל הארגומנטים count=1

בעוד ש-[[$# -gt 0]]; לעשות

הד "ארגומנט $count = $1" count=$((count + 1))

משמרת בוצעה

#! / bin / bash


# posit-param2: סקריפט להצגת כל הארגומנטים count=1

בעוד ש-[[$# -gt 0]]; לעשות

הד "ארגומנט $count = $1" count=$((count + 1))

משמרת בוצעה


בכל פעם משמרת מבוצע, הערך של $2 מועבר ל $1, הערך של $3 מועבר ל $2 וכן הלאה. הערך של $# גם הוא מופחת באחד.

ב posit-param2 בתוכנית, אנו יוצרים לולאה שמעריכה את מספר הארגומנטים שנותרו וממשיכה כל עוד יש לפחות אחד. אנו מציגים את הארגומנט הנוכחי, מגדילים את המשתנה לספור עם כל איטרציה של הלולאה כדי לספק ספירה שוטפת של מספר הארגומנטים שעובדו, ולבסוף, לבצע א משמרת לטעון

$1 עם הארגומנט הבא. הנה התוכנית בפעולה:


[me@linuxbox ~]$ פרמטר חיובי2 abcd

טיעון 1 = א טיעון 2 = ב טיעון 3 = ג טיעון 4 = ד

[me@linuxbox ~]$ פרמטר חיובי2 abcd

טיעון 1 = א טיעון 2 = ב טיעון 3 = ג טיעון 4 = ד


מחשוב ענן מערכת ההפעלה המוביל ב-OnWorks: