2013-07-25 2 views
0

내가 리눅스에서 프로그램의 출력을 얻고 싶은 .sh로 스크립트에서 (작업) 명령을 실행하지 않을 때, 나는 .sh로 파일에이를 넣어 : 그것은 실행리눅스 : 출력이

wine Blockland.exe ptlaaxobimwroe -dedicated -port 30100 > consoleLog.txt 

프로그램,하지만 빈 파일을 만들었습니다. 이 명령은 터미널 창에서 직접 실행될 때 항상 작동합니다. 그래서 .sh 스크립트에서 파일에 출력을 출력하지 않는 이유는 무엇입니까?

+0

당신은 반드시 표준 출력 또는 표준 오류에 기록하지 않는 DOS 콘솔 응용 프로그램을 실행하고 있지만 그것은 "콘솔"에 기록합니다. "콘솔"출력을 안정적으로 포착하는 것은 거의 불가능합니다. Don Libes는 콘솔 출력을 캡쳐 할 수있는 유일한 도구를 기대하고 있으며, 모든 종류의 해킹을 수행합니다. –

+0

또는'script' 세션에서 실행 해보십시오. – tripleee

답변

1

아마도 출력이 stderr 스트림으로 출력되기 때문에 stdout이 아닌 것일 수 있습니다. 명령 끝에 (consoleLog.txt 다음에) 2>&1을 추가하거나 > 대신 &>을 사용하십시오. 간부와 표준 출력

0

리디렉션 :

#!/bin/sh 
#Example script 
exec > consoleLog.txt 
wine Blockland.exe ptlaaxobimwroe -dedicated -port 30100 
+0

이렇게하면 텍스트 편집기에서 열 수없는 빈 파일이 만들어집니다. – hammereditor