Bash:
סידור קוד לתוך פונקציות
איך לעשות:
ליצור פונקציה פשוטה ב-Bash:
greet() {
echo "שלום, $1!"
}
להשתמש בה על ידי קריאה לפונקציה עם פרמטר:
greet "עולם" # פלט: שלום, עולם!
פונקציות יכולות להחזיר ערכים באמצעות return
עבור קודי מצב מספריים (לא עבור החזרת נתונים אמיתיים):
add() {
return $(($1 + $2))
}
add 3 4
echo $? # פלט: 7
לתשומת לבך, $?
לוכד את ערך ההחזרה של הפקודה האחרונה, שהוא התוצאה המספרית של add
.
לעומק
ב-Bash, פונקציות היו דרך למחוזר את הקוד מאז הגרסאות המוקדמות. היסטורית, שימוש בפונקציות הוא בהתאם לעקרונות התכנות המבניים שהוצגו בשנות ה-60 כדי לשפר את איכות הקוד.
חלופות לפונקציות כוללות הכנסת קבצי סקריפט או שימוש בכינויים, אך אלה לא מציעים את אותה רמת המודולריות והשימוש חוזר.
פרט מיוחד ביישום של Bash הוא שפונקציות הן אזרחיות מדרגה ראשונה; אין להן מילת מפתח ייחודית להצהרה כמו function
בשפות אחרות, למרות שהשימוש ב-function
הוא אופציונלי ב-Bash לשם קריאות. גם תחום הפונקציה מעניין – משתנים הם כברירת מחדל גלובליים, למעט אם הם מוצהרים כמקומיים, מה שיכול להוביל להתנהגות בלתי צפויה אם לא ננהל כראוי.
ראו גם
- מדריך Bash על פונקציות שלל: https://www.gnu.org/software/bash/manual/html_node/Shell-Functions.html
- מדריך מתקדם לתסריטי Bash: https://tldp.org/LDP/abs/html/functions.html
- “תכנות מקצועי ב-Bash: סקריפטים לקונסולת GNU/Linux” למושגים ולתרגולים מעמיקים של תכנות פונקציות.