النصوص المترجمة:التنفيذ الضمني مقابل التنفيذ الصريح
-
16-09-2020 - |
سؤال
في هذا السؤال الخارق وقد نصحت أنه من الأفضل تنفيذ البرامج النصية المكتوبة بلغة مفسرة (فب ، بيثون ، الخ) من خلال تنفيذ صراحة المترجم وتوفير السيناريو كحجة ، مثل:
> php script.php
بدلا من إضافة سطر إلى البرنامج النصي لإخبار نظام التشغيل بتنفيذه ، مثل:
#!/usr/bin/php
<?php
echo "hello world";
?>
لماذا هذا صحيح?حدسي يقول لي أنه أكثر أمانا, في حالة نقل البرنامج النصي إلى النظام الذي يقع قابل للتنفيذ المترجم في مسار مختلف, ولكن هل هذا هو السبب الوحيد?
المحلول
يتم تحسين قابلية النقل إذا كنت تستخدم هذا المصطلح:
#!/usr/bin/env php
ولكن لديها عيوب من تلقاء نفسها;انظر مناقشة أطول في http://sites.google.com/site/frankpzh/knowledge-library/shebang
نصائح أخرى
مسارات مختلفة سيكون السبب الرئيسي ، وخصوصا عندما تبدأ الثنائيات الحصول على تخزينها في مسارات 64-يرمز أو تثبيت في / البيرة / المحلية / بن / فب.