כיצד לכתוב פונקציות ולולאות בבאש?

הדרך הקלה ביותר לצמצם את כמות הקוד שאתה צריך לכתוב בכל תוכנית שהיא היא למצוא דרכים לשימוש חוזר בקוד.
סקריפטים של מעטפת Bash היא שפת CLI ( ממשק שורת פיקוד) עוצמתית ורב-תכליתית. הדרך הקלה ביותר לצמצם את כמות הקוד שאתה צריך לכתוב בכל תוכנית שהיא היא למצוא דרכים לשימוש חוזר בקוד. לולאות ופונקציות הן שתי דרכים להשיג זאת. כמו בכל שפה, ככל שתכיר יותר תחביר (או היכן למצוא את התחביר), כך תהיה לך טוב יותר בכתיבת הקוד. הקוד המסופק במאמר זה הוא תוכנית הפעלה שתופעל ב- UNIX, Linux או Mac OS X ואילך. מאמר זה יתחיל בלינוקס בשורת הפקודה.
- 1עבור אל לינוקס ופתח חלון מסוף. הקלד את הפקודה הבאה בשורת הפקודה:
vi FunLoop.sh
. פעולה זו תיצור את הקובץ שתשתמש בו כקובץ סקריפט ותפתח אותו לעריכה. - 2הזן את הצהרת הפגז בשורה הראשונה של הקובץ. כל סקריפט פגז צריך את זה כדי לומר לו באיזה פגז לרוץ. הקלד
#!/bin/bash
. - 3צור את המשתנים הדרושים לך עבור סקריפט זה. תזדקק לאחת שתצלם את הבחירה שהוזן על ידי המשתמש ואחת שתגדיר את הספרייה על פי בחירת המשתמש. הקלד
directory=""
וchoice=0
. - 4צור את הפונקציה הראשונה שלך. זהו קוד פשוט ויש לו שם שהוא תלוי רישיות. תן לזה שם
menuList
. כל מה שבין סוגריים הפתיחה לסגירה הוא כל קוד שאתה רוצה שיהיה.פעולה זו תיצור את הקובץ שתשתמש בו כקובץ סקריפט ותפתח אותו לעריכה. - 5הקלד את השם והסוגריים בשורה הראשונה אחרי המשתנים. זה צריך להיראות כך:
menuList()
. - 6הקלד סוגר פתיחה בשורה אחרת בפני עצמה
{
. - 7הקלד את הפקודה כדי לנקות את המסך בשורה בפני עצמה. זה אמור להיראות כך:
clear
. - 8הקלד את הצהרות ההד המרכיבות את התפריט.
הד "1. הפעל ls בספריית הבית שלי." הד "2. הפעל ls בספריית השורש." הד "3. הפעל ls בספריית הפח." הד "4. תוכנית יציאה."
- 9הקלד סוגר סוגר בשורה אחרת בפני עצמה
}
. - 10צור פונקציה להפעלת
ls
הפקודה. - 11הקלד את השם והסוגריים בשורה הראשונה אחרי המשתנים. כדאי להוסיף
runLS()
. - 12הקלד סוגר פתיחה בשורה אחרת בפני עצמה
{
. - 13הקלד את הפקודה להפעלת ה- ls.
ls -la $directory
כאשר $ directory הוא זה שצוין על ידי בחירת התפריט. - 14הקלד סוגר סוגר בשורה אחרת בפני עצמה
}
. - 15צרו הצהרות לולאה ואם להפעיל את הפונקציות.
- 16צור את הצהרת while עם המילה ואחריה הצהרה מותנית.
while [$choice -ne 4]
. איפה$choice
הוא הקלט מהמשתמש4
הוא הפריט בתפריט לספר את תכנית קרובה,-ne
הוא אופרטור תנאי המשמש scripting פגז Bash להערכת מספר. - 17המשך בהצהרת while עם מילת המפתח do. הקלד
do
. - 18לאחר מכן מגיע הקוד שרוצים להפעיל בכל פעם שלופ הלולאה פועלת. יש לך ארבעה פריטי תפריט, כך שתזדקק לארבע
if
הצהרות ולתפוס הכל עבור ערכים שאינם עומדים בדרישות פריטי התפריט. כתוב את הצהרת ה- if כדלקמן:אם [$ choice -eq 1] ואז $ directory = "~ /" runLS elif [$ choice -eq 2] ואז $ directory = "/" runLS elif [$ choice -eq 3] ואז $ directory = "/ bin" runLS elif [$ choice -eq 4] ואז נקה הד "תודה שהשתמשת בקבצי רשימה" שינה 3 יציאה אחרת הד "בחירה לא חוקית, אנא נסה שוב" הסתיים
תזדקק לאחת שתצלם את הבחירה שהוזן על ידי המשתמש ואחת שתגדיר את הספרייה על פי בחירת המשתמש. - 19שמור ויצא מהקובץ על ידי הקלדה: Esc
:x
,. - 20הפעל את chmod כדי לתת הרשאות לקובץ להפעלה. הקלד:
chmod u+x FunLoop.sh
. - 21הפעל את התוכנית על ידי הקלדת
.
/FunLoop.sh.
שיטה 1 מתוך 1: דוגמה
קוד לדוגמא בו תוכלו להשתמש:
! / bin / bash directory = "" choice = 0 menuList () {clear echo "1. הפעל ls בספריה הביתית שלי." הד "2. הפעל ls בספריית השורש." הד "3. הפעל ls בספריית הפח." הד "4. צא מהתוכנית"} runLS () {ls -la $ directory sleep 2} בזמן ש [$ choice -ne 4] do menuList read -p "הזן את הבחירה שלך:" בחירה אם [$ choice -eq 1] ואז $ Directory = "~ /" runLS elif [$ choice -eq 2] ואז $ directory = "/" runLS elif [$ choice -eq 3] ואז $ directory = "/ bin" runLS elif [$ choice -eq 4] ואז נקה הד "תודה על השימוש בקבצי הרשימה" שינה 3 יציאה אחרת הד "בחירה לא חוקית, אנא נסה שוב" הסתיים
- סקריפטים שגויים יכולים להשפיע לרעה על המערכת שלך. חשוב להקפיד על מניפולציה של קבצים במחשב.
- מחשב עם לינוקס, UNIX או OS X עליו