כתיבה לשגיאה התקנית

Bash:
כתיבה לשגיאה התקנית

איך לעשות זאת:

ב-Bash, אתה משתמש ב->&2 כדי להפנות פלט ל-stderr. הנה דוגמה בסיסית:

echo "זו הודעה רגילה"
echo "זו הודעת שגיאה" >&2

הרצת סקריפט זה תציג את שתי ההודעות בקונסול, אך אם תפנה אותם, תוכל להפריד בין ה-stdout ל-stderr. לדוגמה:

bash script.sh > output.txt 2> error.txt

output.txt יכיל את "זו הודעה רגילה", בעוד ש-error.txt יתעד "זו הודעת שגיאה".

למקרה שימוש מעשי, שקול סקריפט שמעבד קבצים ומדווח על שגיאה אם קובץ לא קיים:

filename="example.txt"

if [ ! -f "$filename" ]; then
    echo "$filename לא קיים!" >&2
    exit 1
else
    echo "מעבד את $filename"
fi

פלט לדוגמה ישירות בקונסול כאשר example.txt לא קיים:

example.txt לא קיים!

אין ספריות צד שלישי ישירות ב-Bash לטיפול ב-stderr, שכן הכוונה מחודשת נתמכת כברירת מחדל ובדרך כלל מספיקה. עם זאת, ליישומים מורכבים יותר, ניתן להכניס מסגרות רישום או כלים חיצוניים לרישום כמו syslog או log4bash כדי לנהל את ה-stdout וה-stderr בצורה יעילה יותר.