انتظار عملية في الخلفية وقراءة نتيجة خروجها
تشغيل أمر في الخلفية لا يعني أنه انتهى بنجاح ولذلك نستخدم wait لمعرفة النتيجة
نفذ المثال بإستخدام Bash داخل مجلد تدريب جديد تملكه على GNU/Linux والأوامر لا تحتاج sudo
المثال العملي
bash -c 'exit 7' &
child=$!
if wait "$child"; then
printf 'Success\n'
else
status=$?
printf 'Exit: %s\n' "$status"
fiالنتيجة
Exit: 7المتغير $! يحفظ معرف آخر عملية خلفية و wait يرجع حالة خروجها والتي حفظناها قبل تنفيذ أمر آخر
جرب بنفسك
غير exit 7 إلى exit 0 ولاحظ انتقال التنفيذ إلى فرع النجاح