التابع system‎ الخاص بالصنف Kernel في روبي

من موسوعة حسوب
< Ruby‏ | Kernel

ينفذ التابع system الأمر المُمرَّر إليه في صدفة فرعية (subshell).

البنية العامة

system([env,] command... [,options])  true, false or nil

المعاملات

env‎

بيئة التنفيذ. يعد هذا المعامل الذي من النوع Hash مماثلة تمامًل لمعامل التابع exec و spawn. انظر صفحة spawn لمزيد من التفاصيل.

command...‎

التعليمة المراد تنفيذها. تأخذ التعليمة command…‎ أحد الأشكال التالية.

شكل المعامل command…‎ الوصف
commandline تعليمة نصية تُمرر إلى الصدفة القياسية
cmdname, arg1, ...‎ تعليمة نصية تُمرر إلى الصدفة القياسية
‎[cmdname, argv0], arg1, ...‎ تعليمة ووسيط واحد أو أكثر argv[0]‎.

options‎

الخيارات المستعملة في ضبط العملية. يعد هذا المعامل الذي من النوع Hash مماثل تمامًل لمعامل التابع exec و spawn. انظر صفحة spawn لمزيد من التفاصيل.

القيمة المعادة

تعاد القيمة true إذا كانت حالة الأمر command...‎ تساوي الصفر، وإلا فستُعاد القيمة false. تُعاد nil إن فشل تنفيذ التعليمة. حالة الخطأ (error status) متاحة في ‎$?‎، وتٌعالج الوسائط كما هو الحال في التابع spawn.

أمثلة

مثال على استخدام التابع system‎:

system("echo *")
system("echo", "*")

الناتج:

config.h main.rb
*

انظر أيضا

  • التابع spawn: ينفذ تعليمة محددة، ثم يعيد معرفها (pid).
  • التابع syscall: يستدعي دالة نظام التشغيل المحددة بواسطة المعامل المُمرَّر إليه ويعيد نتيجة هذه الدالة أو يطلق الخطأ SystemCallError في حال فشل استدعائها.
  • التابع exec لمزيد من المعلومات حول الصدفة (shell) القياسية.

مصادر