2012-01-23 1 views
2

많은 수의 오류가있는 haskell 파일을 컴파일하려고합니다. 첫 번째 디버깅을 시작하고 싶지만 불행히도 너무 많은 화면이 화면에 표시됩니다.표준 출력 대신 파일에 컴파일 오류를 출력하도록 GHC를 얻으려면 어떻게해야합니까?

위로 가기 읽을 수 있도록 오류 메시지를 파일로 파이프하고 싶지만 정상적인 방법은 작동하지 않는 것 같습니다.

이 나는 ​​시도했다 : 그들 중

ghc File.hs > errors.log 
ghc File.hs >> errors.log 
ghc File.hs | more 

없음이 작동하지 않습니다. >>>을 사용하면 첫 번째 몇 줄만 파일에 기록한 다음 나머지는 표준 출력에 기록합니다. more을 사용하면 less, cat 등은 전혀 차이가 없습니다.

파일로 출력 할 수있는 GHC 플래그가 있습니까?

(아마 당신은 내가 Cygwin에서와 Windows 시스템에서 일하고 있음을 알려야합니다.)

답변

9

대부분의 프로그램은 표준 오류에 표준 출력 (파일 기술자 1) 및 오류 메시지 출력 쓰기 (파일 설명자 2).

ghc File.hs > output.log 2> errors.log 

또는 동일한 파일에 원하는 경우 :

이 같은 다른 위치로 표준 오류를 리디렉션 쉘을 요청할 수의 쉘의 맨 페이지 섹션을 참조하십시오

ghc File.hs > output.log 2>&1 

자세한 내용은 리디렉션을 참조하십시오. 쉘은 재 지정 순서에 대해 까다 롭습니다.

+0

감사 당신! 지금 당신이 그것을 언급하는 것은 아주 분명합니다. –

4

또한 sarnold의 솔루션과 같은 리디렉션을 사용하여 직접 출력을 볼 수 있지만, 중간 출력 파일이없는 :

ghc File.hs 2>&1 | less 

(같은 대신 lessmore 간다 등)

+3

'bash (1)'맨 페이지를 통해 올바른 답을 찾았을 때,'| &'토큰을 발견했습니다 -'gch File.hs | & less' 명령을 사용하면됩니다. 똑같은 것! 18 년 동안 저는 리눅스를 사용하고 있었고 _ 배웠습니다. 놀랄 만한. :) – sarnold

관련 문제