نعود والإخراج من نظام التشغيل.تنفيذ في لوا
-
02-07-2019 - |
سؤال
عندما تفعل "نظام التشغيل.تنفيذ" في Lua, وحدة التحكم بسرعة للملوثات العضوية الثابتة ، ينفذ الأمر ، ثم تغلق.ولكن هل هناك طريقة للحصول على العودة على وحدة الإخراج فقط باستخدام معيار لوا المكتبات ؟
المحلول
أعتقد أنك تريد هذا http://pgl.yoyo.org/luai/i/io.popen io.popen.ولكن ليس دائما جمعت في.
نصائح أخرى
إذا كان لديك io.popen, ثم وهذا هو ما يمكنني استخدام:
function os.capture(cmd, raw) local f = assert(io.popen(cmd, 'r')) local s = assert(f:read('*a')) f:close() if raw then return s end s = string.gsub(s, '^%s+', '') s = string.gsub(s, '%s+$', '') s = string.gsub(s, '[\n\r]+', ' ') return s end
إذا لم يكن لديك io.popen, ثم يفترض popen(3) غير متوفر على النظام الخاص بك ، وأنت في أعماق اللبن.ولكن كل يونيكس/ماك/ويندوز لوا الموانئ سوف يكون io.popen.
أنا لا أعرف حول لوا على وجه التحديد ولكن يمكنك عادة تشغيل الأمر:
comd >comd.txt 2>&1
التقاط الإخراج و الخطأ إلى ملفات comd.txt ثم استخدام ملف اللغات وظائف I/O قراءة في.
هذا هو كيف نفعل ذلك إذا كانت اللغة نفسها لم ينص على التقاط stanard إخراج والخطأ.