Skip to main content

لينكس - قيادة يونيكس: exec

Process Management Commands (fg, bg, top, ps, kill, nice, renice, df, free) Linux Tutorial (يوليو 2026)

Process Management Commands (fg, bg, top, ps, kill, nice, renice, df, free) Linux Tutorial (يوليو 2026)
Anonim

exec - استدعاء subprocess (عناوين)

ملخص

إكسيك? مفاتيح ? ARG ? أرج … ?

وصف

يتعامل هذا الأمر مع حججه كمواصفات واحدة أو أكثر من العمليات الفرعية لتنفيذها. تأخذ الحجج شكل خط أنابيب قذيفة قياسي حيث كل منها ARG يصبح كلمة واحدة من أمر ، ويصبح كل أمر متميز عملية فرعية.

إذا كانت الحجج الأولية لإكسيك أبدا ب- ثم يتم التعامل معها كمفاتيح تبديل سطر الأوامر وليست جزءًا من مواصفات خط الأنابيب. المفاتيح التالية مدعومة حاليًا:

-keepnewline

يحتفظ بخط جديد لاحق في إخراج خط الأنابيب. عادة ما يتم حذف سطر جديد لاحق.

--

يمثل نهاية مفاتيح التبديل. سيتم التعامل مع الحجة التالية لهذا كأول ARG حتى لو كان يبدأ مع-.

إذا كان ARG (أو زوج من ARG يحتوي على أحد النماذج الموضحة أدناه ثم يتم استخدامه من قبلإكسيك للتحكم في تدفق المدخلات والمخرجات بين العمليات الفرعية (المواد). لن يتم تمرير مثل هذه الحجج إلى العملية الفرعية (العمليات). في أشكال مثل `` < اسم الملف '' اسم الملف قد يكون إما في وسيطة منفصلة من `` <'أو في نفس الحجة بدون فراغ متداخل (أي `` < اسم الملف '').

|

يفصل بين الأوامر المتميزة في خط الأنابيب. سيتم توجيه الإخراج القياسي للأمر السابق إلى الإدخال القياسي للأمر التالي.

|&

يفصل بين الأوامر المتميزة في خط الأنابيب. سيتم توجيه كل من الإخراج القياسي والخطأ القياسي للأمر السابق إلى الإدخال القياسي للأمر التالي. هذا النوع من إعادة التوجيه يتجاوز نماذج مثل 2> و> &.

< اسم الملف

الملف المسمى اسم الملف يتم فتحها واستخدامها كمدخل قياسي للأمر الأول في خط الأنابيب.

<@ fileId

FileId يجب أن يكون المعرّف لملف مفتوح ، مثل قيمة الإرجاع من مكالمة سابقة إلىافتح. يتم استخدامه كمدخل قياسي للأمر الأول في خط الأنابيب. FileId يجب فتحه للقراءة.

<< القيمة

القيمة يتم تمريرها إلى الأمر الأول كمدخل قياسي.

> اسم الملف

يتم إعادة توجيه الإخراج القياسي من الأمر الأخير إلى الملف المسمى اسم الملف ، الكتابة فوق محتوياته السابقة.

2> اسم الملف

يتم إعادة توجيه الخطأ القياسي من كافة الأوامر الموجودة في خط الأنابيب إلى الملف المسمى اسم الملف ، الكتابة فوق محتوياته السابقة.

>& اسم الملف

يتم إعادة توجيه الإخراج القياسي من الأمر الأخير والخطأ القياسي من كافة الأوامر إلى الملف المسمى اسم الملف ، الكتابة فوق محتوياته السابقة.

>> اسم الملف

يتم إعادة توجيه الإخراج القياسي من الأمر الأخير إلى الملف المسمى اسم الملف ، إلحاقها بدلاً من الكتابة فوقه.

2>> اسم الملف

يتم إعادة توجيه الخطأ القياسي من كافة الأوامر الموجودة في خط الأنابيب إلى الملف المسمى اسم الملف ، إلحاقها بدلاً من الكتابة فوقه.

>>& اسم الملف

يتم إعادة توجيه الإخراج القياسي من الأمر الأخير والخطأ القياسي من كافة الأوامر إلى الملف المسمى اسم الملف ، إلحاقها بدلاً من الكتابة فوقه.

>@ fileId

FileId يجب أن يكون المعرّف لملف مفتوح ، مثل قيمة الإرجاع من مكالمة سابقة إلىافتح. يتم إعادة توجيه الإخراج القياسي من الأمر الأخير إلى fileId الملف الذي يجب فتحه للكتابة.

2>@ fileId

FileId يجب أن يكون المعرّف لملف مفتوح ، مثل قيمة الإرجاع من مكالمة سابقة إلىافتح. يتم إعادة توجيه الخطأ القياسي من جميع الأوامر في خط الأنابيب إلى fileId ملف. يجب فتح الملف للكتابة.

>&@ fileId

FileId يجب أن يكون المعرّف لملف مفتوح ، مثل قيمة الإرجاع من مكالمة سابقة إلىافتح. يتم إعادة توجيه الإخراج القياسي من الأمر الأخير والخطأ القياسي من كافة الأوامر إلى fileId ملف. يجب فتح الملف للكتابة.

إذا لم يتم إعادة توجيه الإخراج القياسي عندئذٍإكسيك الأمر إرجاع الإخراج القياسي من الأمر الأخير في خط الأنابيب. إذا خرج أي أمر من الأوامر في خط الأنابيب بشكل غير طبيعي أو تم قتله أو تعليقه ، فعندئذٍإكسيك سيعرض خطأ وسيتضمن رسالة الخطأ إخراج خط الأنابيب متبوعًا برسائل خطأ تصف الإنهاء غير الطبيعي ؛ الخطا بالكود سيحتوي المتغير على معلومات إضافية حول آخر عملية إنهاء غير طبيعية تمت مواجهتها. إذا كان أي من الأوامر يكتب إلى ملف الخطأ القياسي الخاص به ولم يتم إعادة توجيه الخطأ القياسي ، فيمكنك ذلكإكسيك سيعود خطأ ؛ تتضمن رسالة الخطأ الإخراج القياسي لخطوط الأنابيب ، متبوعة برسائل حول عمليات الإنهاء غير الطبيعية (إن وجدت) ، متبوعة بإخراج الخطأ القياسي.

إذا كان الحرف الأخير للنتيجة أو رسالة الخطأ هو سطر جديد ، فسيتم حذف هذا الحرف عادةً من النتيجة أو رسالة الخطأ. ويتسق هذا مع قيم إرجاع Tcl الأخرى ، التي لا تنتهي عادة بالخطوط الجديدة. ومع ذلك، إذا-keepnewline تم تحديده ثم يتم الاحتفاظ بالخط الجديد.

إذا لم تتم إعادة توجيه الإدخال القياسي مع `` <'أو' `<'' ، فسيتم أخذ الإدخال القياسي للأمر الأول في خط الأنابيب من الإدخال القياسي الحالي للتطبيق.

إذا كان الأخير ARG هو `` & `` ثم سيتم تنفيذ خط الأنابيب في الخلفية. في هذه الحالةإكسيكسيعود الأمر إلى قائمة تكون عناصرها معرفات العملية لكافة العمليات الفرعية الموجودة في خط الأنابيب.سينتقل المخرج القياسي من الأمر الأخير في خط الإنتاج إلى الإخراج القياسي للتطبيق إذا لم تتم إعادة توجيهه ، وسيذهب إخراج الخطأ من جميع الأوامر الموجودة في خط الأنابيب إلى ملف الخطأ القياسي للتطبيق ما لم تتم إعادة توجيهه.

يتم أخذ الكلمة الأولى في كل أمر كاسم الأمر؛ يتم إجراء الاستبدال tilde عليه ، وإذا احتوت النتيجة على أية خطوط مائلة ثم يتم البحث في الدلائل في متغير بيئة PATH للتنفيذ بواسطة الاسم المحدد. إذا كان الاسم يحتوي على شرطة مائلة ، فيجب أن يشير إلى إمكانية الوصول القابل للتنفيذ من الدليل الحالي. يتم تنفيذ لا `` غلوب '' التوسع أو غيرها من بدائل تشبه الصدف على الوسيطات للأوامر.

قضايا قابلية النقل

شبابيك (جميع الإصدارات)

القراءة من أو الكتابة إلى مأخذ ، باستخدام ``@ fileId "الترميز ، لا يعمل. عند قراءة من مأخذ توصيل ، سيتم تعليق تطبيق DOS 16 بت ثم سيعود تطبيق 32 بت مباشرة مع نهاية الملف. عندما يكتب أي نوع من التطبيق إلى مأخذ توصيل ، يتم إرسال المعلومات بدلاً من ذلك إلى وحدة التحكم ، إذا كان موجودًا أو تم تجاهله.

لا توفر أداة نص لوحة المفاتيح Tk إمكانيات IO قياسية حقيقية. تحت Tk ، عند إعادة التوجيه من الإدخال القياسي ، سترى جميع التطبيقات ملف نهاية فوري ؛ سيتم تجاهل المعلومات المعاد توجيهها إلى الإخراج القياسي أو الخطأ القياسي.

يتم قبول الشريحتين الأماميتين أو الخلفيتين كفواصل مسار للوسائط إلى أوامر Tcl. عند تنفيذ تطبيق ، قد يحتوي اسم المسار المحدد للتطبيق أيضًا على شُرط مائلة للأمام أو للخلف كفواصل مسار. ومع ذلك ، ضع في اعتبارك أن معظم تطبيقات Windows تقبل الوسيطات مع خطوط مائلة للأمام فقط كمحددات خيار وحدود مائلة عكسية في المسارات فقط. لن يتم تلقائيًا تحويل أي وسيطات إلى تطبيق تحدد اسم مسار مع خطوط مائلة للأمام لاستخدام حرف الخط المائل العكسي. إذا كانت إحدى الوسيطات تحتوي على علامات مائلة للأمام كفاصل للمسار ، فقد يتم التعرف عليها أو لا يمكن التعرف عليها كاسم مسار ، وفقًا للبرنامج.

بالإضافة إلى ذلك ، عند استدعاء تطبيق 16 بت DOS أو Windows 3.X ، يجب أن تستخدم جميع أسماء المسارات صيغة المسار القصيرة والمشفرة (على سبيل المثال ، باستخدام `` applba ~ 1.def '' بدلاً من `` applbakery.default '' ).

تشير شريحتان مائلتان للأمام أو للخلف في صف في مسار إلى مسار شبكة. على سبيل المثال ، سلسلة بسيطة من الدليل الجذرج: / مع دليل فرعي/ ويندوز / نظام سوف تسفرج: // النوافذ / النظام (اثنان مائلين معًا) ، مما يشير إلى نقطة التثبيت التي تسمىالنظام على الجهاز يسمىشبابيك (و الج: / يتم تجاهلها) ، ولا تعادلج: / ويندوز / نظام، والتي تصف دليل على الكمبيوتر الحالي. الملف الانضمام يجب استخدام الأمر لسَلسَلة مكونات المسار.

نظام التشغيل Windows NT

عند محاولة تنفيذ أحد التطبيقات ،إكسيك يبحث أولاً عن الاسم كما تم تحديده. ثم ، بالترتيب ،كوم, .إملف تنفيذىو.مضرب يتم إلحاقها بنهاية الاسم المحدد ويقوم بالبحث عن الاسم الأطول. إذا لم يتم تحديد اسم دليل كجزء من اسم التطبيق ، يتم البحث في الدلائل التالية تلقائيًا عند محاولة تحديد موقع التطبيق:

الدليل الذي تم تحميل الملف التنفيذي Tcl منه.الدليل الحالي.دليل نظام Windows NT 32-بت.دليل نظام Windows NT 16-بت.الدليل الرئيسي Windows NT.الدلائل المسرودة في المسار.

من أجل تنفيذ أوامر shell مدمج مثلدير ونسخ، يجب على المتصل أن يضيف "`cmd.exe / c"إلى الأمر المطلوب.

ويندوز 95

عند محاولة تنفيذ أحد التطبيقات ،إكسيك يبحث أولاً عن الاسم كما تم تحديده. ثم ، بالترتيب ،كوم, .إملف تنفيذىو.مضرب يتم إلحاقها بنهاية الاسم المحدد ويقوم بالبحث عن الاسم الأطول. إذا لم يتم تحديد اسم دليل كجزء من اسم التطبيق ، يتم البحث في الدلائل التالية تلقائيًا عند محاولة تحديد موقع التطبيق:

الدليل الذي تم تحميل الملف التنفيذي Tcl منه.الدليل الحالي.دليل نظام Windows 95.الدليل الرئيسي لـ Windows 95.الدلائل المسرودة في المسار.

من أجل تنفيذ أوامر shell مدمج مثلدير ونسخ، يجب على المتصل أن يضيف "`command.com / c"إلى الأمر المطلوب.

بمجرد قراءة تطبيق DOS 16 بت الإدخال القياسي من وحدة تحكم ثم قم بإنهاء ، كافة تطبيقات DOS 16 بت تشغيل لاحقاً سوف تشاهد الإدخال القياسي كما تم إغلاقه بالفعل. لا تملك تطبيقات 32-بت هذه المشكلة وسيتم تشغيلها بشكل صحيح ، حتى بعد تطبيق DOS 16 بت يظن أنه يتم إغلاق الإدخال القياسي. لا يوجد أي حل معروف لهذا الخطأ في هذا الوقت.

إعادة توجيه بينNUL: لا يعمل الجهاز وتطبيق 16 بت دائما. عند إعادة التوجيه منNUL:، قد يتعطل بعض التطبيقات ، سيحصل الآخرون على تدفق لا نهائي من البايتات `` 0x01 '' ، وسيحصل البعض فعليًا بشكل صحيح على ملف نهاية فوري ؛ يبدو أن السلوك يعتمد على شيء تم تجميعه في التطبيق نفسه. عند إعادة توجيه أكبر من 4K أو نحو ذلكNUL:، بعض التطبيقات ستعلق. لا تحدث المشاكل المذكورة أعلاه مع تطبيقات 32 بت.

يتم تشغيل كافة تطبيقات DOS ذات 16 بت بشكل متزامن. يتم جمع كافة الإدخال القياسي من توجيه إلى تطبيق DOS 16 بت في ملف مؤقت؛ يجب إغلاق الطرف الآخر من توجيه الإخراج قبل بدء تشغيل التطبيق DOS 16 بت.يتم تجميع كافة الإخراج القياسي أو الخطأ من تطبيق DOS 16 بت إلى توجيه إلى ملفات مؤقتة؛ يجب إنهاء التطبيق قبل إعادة توجيه الملفات المؤقتة إلى المرحلة التالية من خط الأنابيب. هذا بسبب إلى حل Windows 95 bug في تطبيق توجيهات وهو كيفية معالجة shell Windows 95 DOS القياسية أنابيب نفسه.

بعض التطبيقات ، مثلcommand.com، لا ينبغي تنفيذه تفاعليًا. قد تفشل التطبيقات التي تصل مباشرة إلى إطار وحدة التحكم ، بدلاً من القراءة من الإدخال القياسي والكتابة إلى الإخراج القياسي ، أو تعليق Tcl ، أو حتى تعليق النظام إذا لم تكن نافذة وحدة التحكم الخاصة بها متوفرة لهم.

ماكنتوش

الإكسيك لم يتم تنفيذ الأمر ولا يوجد تحت Macintosh.

يونكس

الإكسيك الأمر يعمل بشكل كامل ويعمل كما هو موضح.

أنظر أيضا

خطأ (n) ، مفتوح (n)

الكلمات الدالة

تنفيذ ، خط أنابيب ، إعادة توجيه ، subprocess

مهم: استخدم ال رجل أمر ( رجل٪ ) لمعرفة كيفية استخدام الأمر على جهاز الكمبيوتر الخاص بك.