מספר דרכים לשרשור פקודות ב- Bash:
- הרצת סקריפט שמכיל את הפקודות אחת אחר השניה (כל פקודה בשורה נפרדת).
– כל הפקודות ירוצו באותו ה- shell (גם אם הן מצליחות וגם אם לא) - הרצת הפקודה: cmd1;cmd2;cmd3
– הפקודות מופרדות ע"י ';' ורצות אחת אחר השניה
– כל פקודה ממתינה לסיום הפקודה הקודמת כשכל פקודה רצה ב- shell אחר (קראו את התגובות) - הרצת הפקודה: (cmd1;cmd2;cmd3)
– כמו 2 רק שכל הפקודות רצות באותו ה- shell ברקע (קראו את התגובות) - הרצת הפקודה: cmd1 && cmd2 && cmd3
-בהתחלה תרוץ הפקודה cmd1, אם תצליח תרוץ הפקודה cmd2 ואם לא תצליח לא תורץ אף פקודה נוספת.
– '&&' שונה מ- ';' בכך שבשימוש ב- ';' הפקודות תמיד רצות אחת אחר השנייה (ללא תלות בתוצאות ההרצה הקודמת) - ניתן להשתמש בסקריפט ולבדוק אם כל פקודה הצליחה או לא
– ניתן לדעת אם פקודה הצליחה או לא ע"י בדיקת הערך של '?$'. אם '?$' מחזיר 0 הפקודה הצליחה ואם מחזיר כל ערך אחר הפקודה נכשלה.
– ניתן לבצע בדיקות נוספות ומתוחכמות יותר ע"י שימוש ב- || (שמשמעותו 'או') או ב- && ('וגם') - שימוש ב- & (הרצה ברקע): cmd1 & cmd2 & cmd3
כל הפקודות ירוצו במקביל אך זאת שתסיים ראשונה תציג את הפלט ראשונה (אם יש פלט)
כמעט בטוח שיש דרכים נוספות ואשמח להתעדכן (גם בטעויות שרשמתי…).