نعود والإخراج من نظام التشغيل.تنفيذ في لوا

StackOverflow https://stackoverflow.com/questions/132397

  •  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 إخراج والخطأ.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top