أقوم في بعض الأحيان بتنفيذ أوامر على النظام بإستخدام الدوال:
exec
system
passthru
لا أفهم الفرق بين هذه الدوال وبعضها، على سبيل المثال إذا أردت تشغيل سكريبت bash على لينكس، فهل إستعمال أي دالة من هذه الدوال سوف يؤدي نفس النتيجة؟
وهل هناك حالة أو إستعمال محدد لكل دالة من هذه الدوال؟
كل الوظائف موجهة لتنفيذ أوامر معينة تختلف فيما بينها من حيث أن:
الوظيفة system تقوم بتنفيذ الأمر وإعادة خرج الأمر ان وجد. فهنا ستقوم أنت نفسك بالتعامل مع الخرج وفق نمط او فكرة معينة مثل تنسيقه.
الوظيفة exec تقوم بتنفيذ الأمر وعرض خرج الأمر مباشرة، أي انه لن يمكن تخزينه في متغير بغرض تنسيقه أو عرضه وفق شكل معين.
الوظيفة passthru تقوم بتنفيذ الأمر وعرض خرج الأمر بشكل خام (وحدات ثنائية binary) مباشرة.
يجب الحذر بشأن استعمال هاته الوظائف ان كنت تستقبل أو تقوم بتخصيص هاته