» נושאי לימוד
» נושאי לימוד
יום רביעי 8 במאי 2024
ארגומנטים ופרמטרים
דף ראשי  המעטפת - The Shell  תכנות ב- Shell  ארגומנטים ופרמטרים גרסה להדפסה
 

כשם שהשימוש בסקריפט מעטפת זהה לשימוש בפקודת UNIX רגילה כך גם מנגנון העברת הארגומניטים לסקריפט זהה לזה של פקודה רגילה.

 

 צור את הקובץ program2 בעזרת עורך vi. הקלד:

vi program2

הזן את הסקריפט הבא בעורך:

echo $1 $2 $3 $4

echo $4 $3 $2 $1

echo $4 $1

שמור את הקובץ וצא מהעורך.

לאחר שינוי הרשאות הגישה (כפי שפורט לעיל), הקלד את שורת הפקודה:

 

program2 unix is user friendly

המעטפת תדפיס על המסך:

 

 

ננסה להבין את הפלט שקיבלנו:

המשתנים $1,$2,$3,$4  הינם פרמפטרים מקומיים (positional parameters). פרמטר הינו שם המיצג ארגומנט בשורת הפקודה. ההתאמה בין הארגומנטים לפרמטרים נעשית באופן הבא: הארגומנט הראשון לפרמטר הראשון ($1), הארגומנט השני לפרמטר השני ($2), הארגומנט השלישי לפרמטר השלישי ($3), והארגומנט הרביעי לפרמטר הרביעי ($4). לכן נקבל כי:

$1 מכיל את המחרוזת  unix.

$2 מכיל את המחרוזת  is.

$3 מכיל את המחרוזת  user.

$4 מכיל את המחרוזת  friendly.

על כן כאשר מופעלת פקודת echo על הפרמטרים הם מודפסים תחילה בסדר הכנסתם כארגומנטים (שורת הסקריפט הראשונה), לאחר מכן מודפסים בסדר הפוך (שורת הסקריפט השניה), ולבסוף מודפסים רק הפרמטרים הרביעי והראשון (שורת הסקריפט השלישית).

 

כעת נסה להכניס פרמטרים או מספרים,  נסה לנתח את הפלט באופן דומה.

 

 לדוגמא:

שים לב לכך שאין החזרת הודעת שגיאה במידה וחסרים ארגומנטים.

 

 דוגמא נוספת:

 

 

הסיבה לחוסר ההתאמה נעוצה בעובדה שהמערכת פונה אל ברירת המחדל שלה.

היות והתווים כוכבית (*) ולוכסן (/) מזוהים במערכת כמבנה גלוב (*) וכנתיב לקובץ (/), אזי המערכת מודיעה כי אין התאמה.

 

ננסה כעת להקליד את הארגומנטים עם גרשיים:

כעת המערכת מזהה את הפקודה והארגומנטים, היות והגרשיים מורים למעטפת כי אלו ארגומנטים.

 

 

 25-11-03 / 16:20  עודכן ,  17-10-03 / 15:11  נוצר ע"י חן דרור  בתאריך 
 הערות - הקודםהבא - מבני בקרה 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 4