اكتشاف فشل مرحلة داخل Pipe بإستخدام pipefail
حالة خروج سلسلة الأوامر تكون عادة حالة آخر أمر فقط وده ممكن يخفي فشل مرحلة سابقة
نفذ المثال بإستخدام Bash داخل مجلد تدريب جديد تملكه على GNU/Linux والأوامر لا تحتاج sudo
المثال العملي
(
set +o pipefail
false | cat
printf 'Default: %s\n' "$?"
set -o pipefail
false | cat
printf 'Pipefail: %s\n' "$?"
)النتيجة
Default: 0
Pipefail: 1الأمر cat نجح رغم فشل false لكن تفعيل pipefail جعل السلسلة ترجع حالة فشل
جرب بنفسك
جرب true | false وقارن النتيجة قبل وبعد تفعيل الخيار