שיעור 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: מחרוזת לא ריקה.