שיעור 20: תנאים ב-bash
הסקריפט מהשיעור הקודם יוצר גיבוי — אבל לא מדווח אם הצליח. נוסיף לו תנאי if. [ -f file ] בודק קיום קובץ; [ -d dir ] בודק קיום תיקייה; [ $? -eq 0 ] בודק קוד יציאה. [ הוא פקודה אמיתית — חייבים רווחים לפנים ולאחר כל ארגומנט. then פותח את הבלוק, fi סוגר אותו. && מחבר שני תנאים — שניהם חייבים להצליח.
if הוא בדיוק 'אם' בעברית: [ -f ] שואל 'האם הקובץ קיים?', then פירושו 'אז', ו-fi סוגר את הבלוק — פשוט if כתוב הפוך. רק לזכור: [ ] הוא פקודה בפני עצמה, ולכן חייבים רווחים סביבו כמו בכל פקודה.
- if בבאש
- if [ condition ]; then ... fi. [ ] מחזיר קוד יציאה 0 (true) או 1 (false). then פותח את גוף הבלוק. fi (=if הפוך) סוגר. else בשורה נפרדת אפשרי לבלוק חלופי.
- אופרטורי test
- -f: קובץ רגיל קיים. -d: תיקייה קיימת. -e: נתיב קיים (כל סוג). -eq: שווה (מספרים). -ne: לא שווה. -z: מחרוזת ריקה. -n: מחרוזת לא ריקה.