문제
LUA에서 "OS.Execute"를 수행하면 콘솔이 빠르게 나타나고 명령을 실행 한 다음 닫습니다. 그러나 표준 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)을 사용할 수 없으며 Deep Yoghurt에 있습니다. 그러나 모든 UNIX/MAC/Windows LUA 포트에는 io.popen이 있습니다.
LUA에 대해 구체적으로 모르지만 일반적으로 다음과 같은 명령을 실행할 수 있습니다.
comd >comd.txt 2>&1
file comd.txt의 출력과 오류를 캡처하려면 언어 파일 I/O 함수를 사용하여 읽으십시오.
언어 자체가 Stanard 출력 및 오류를 캡처하기 위해 제공하지 않았다면 그렇게하는 방법입니다.
제휴하지 않습니다 StackOverflow