שגיאה סטנדרטית
חלק מהיחידה יסודות במסלול ה-Terminal של Coddy. שיעור 41 מתוך 82.
זרם הנתונים השלישי והאחרון הוא שגיאת תקן, שמקוצר ל־stderr. הזרם הזה מיועד במיוחד להודעות שגיאה ולאזהרות, ומפריד אותן מהפלט הרגיל.
כאשר פקודה נכשלת, הודעת השגיאה נשלחת לזרם השגיאה הסטנדרטי, ולא לזרם הפלט הסטנדרטי:
ls nonexistent_folderהודעת השגיאה שמוצגת לך מגיעה דרך stderr. ההפרדה הזאת חשובה, כי אפשר להפנות שגיאות בנפרד מהפלט הרגיל.
כדי להפנות את זרם השגיאות הסטנדרטי, השתמשו ב־2> במקום ב־>:
ls nonexistent_folder 2> errors.txtה-2 מתייחס למספר מתאר הקובץ של stderr (stdout הוא 1, ו-stderr הוא 2). הפקודה הזו לוכדת את הודעת השגיאה בקובץ errors.txt ומשאירה את הטרמינל שלך נקי.
אפשר להפנות את שני הזרמים לקבצים שונים:
ls existing_folder nonexistent_folder > output.txt 2> errors.txtפלט מוצלח נשלח אל output.txt, בעוד שכל השגיאות נשלחות אל errors.txt. כדי לשלוח את שני הזרמים לאותו קובץ, השתמשו ב־2>&1:
ls existing_folder nonexistent_folder > all_output.txt 2>&1פעולה זו מפנה את stderr למקום שאליו stdout מופנה, וכך מאחדת את הכול לקובץ אחד.
אתגר
קלהשתמשו באופרטור 2> כדי להפנות הודעת שגיאה לקובץ. הריצו את שתי הפקודות האלה לפי הסדר:
- נסו להציג את רשימת התוכן של תיקייה בשם
missing_folderבאמצעותls, והפנו את הודעת השגיאה לקובץ בשםerrors.txt - השתמשו ב-
catכדי להציג את התוכן שלerrors.txt
רמז: התבנית היא
ls foldername 2> filename. הודעת השגיאה תופיע בקובץ במקום על המסך. השתמשו ב-catכדי לוודא שהיא נשמרה.
נסו בעצמכם
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
7תוכן הקובץ
ראש וזנבספירת מיליםפקודת המיוןפקודת הסינון לכפילויותיסודות grepgrep עם דגליםסיכום – בלש/ית טקסט13יסודות כתיבת סקריפטים ב-Shell
מהו סקריפט Shellיצירה והרצה של סקריפטמשתנים בסקריפטיםקלט משתמש בסקריפטיםמשפט ifלולאת forלולאת whileסיכום – נחשו את המספר2ניווט
הצגת ספריית העבודההצגת קבציםשינוי ספרייהנתיבים מוחלטים לעומת יחסייםספריית הבית וספריית השורשסיכום – מצאו את הדרך8ניתוב מחדש
פלט סטנדרטיכתיבה לקובץ תוך דריסת התוכןהוספה לקובץקלט סטנדרטישגיאה סטנדרטיתסיכום – בונה יומני רישום14פרויקט סקריפט לגיבוי
סקירת הפרויקטקבלת נתיב המקורתרגלו בעצמכם: Terminal אונליין