Menu
Coddy logo textTech

שגיאה סטנדרטית

חלק מהיחידה יסודות במסלול ה-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 מופנה, וכך מאחדת את הכול לקובץ אחד.

challenge icon

אתגר

קל

השתמשו באופרטור 2> כדי להפנות הודעת שגיאה לקובץ. הריצו את שתי הפקודות האלה לפי הסדר:

  1. נסו להציג את רשימת התוכן של תיקייה בשם missing_folder באמצעות ls, והפנו את הודעת השגיאה לקובץ בשם errors.txt
  2. השתמשו ב-cat כדי להציג את התוכן של errors.txt

רמז: התבנית היא ls foldername 2> filename. הודעת השגיאה תופיע בקובץ במקום על המסך. השתמשו ב-cat כדי לוודא שהיא נשמרה.

נסו בעצמכם

טרמינל
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: Terminal אונליין