tutorial - Vuelve la salida de os.execute en Lua
lua tutorial (3)
No sé específicamente acerca de Lua, pero generalmente puedes ejecutar un comando como:
comd >comd.txt 2>&1
para capturar la salida y el error en el archivo comd.txt, luego use las funciones de E / S del archivo de idiomas para leerlo.
Así es como lo haría si el lenguaje en sí no proporcionara captura de salida y error estándar.
Cuando hago un "os.execute" en Lua, una consola aparece rápidamente, ejecuta el comando y luego se cierra. Pero, ¿hay alguna forma de recuperar la salida de la consola solo con las bibliotecas Lua estándar?
Creo que quieres esto http://pgl.yoyo.org/luai/i/io.popen io.popen. Pero no siempre está compilado en.
Si tiene io.popen, entonces esto es lo que uso:
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
Si no tiene io.popen, presumiblemente popen (3) no está disponible en su sistema, y está en yogur profundo. Pero todos los puertos Lua de unix / mac / windows tendrán io.popen.