我正在尝试编译一个包含大量错误的haskell文件.我想开始调试第一个,但不幸的是有很多它们离开了屏幕.
我想将错误消息传递给一个文件,以便我可以从顶部读取,但正常的方法似乎不起作用.
我试过了:
ghc File.hs > errors.log
ghc File.hs >> errors.log
ghc File.hs | more
Run Code Online (Sandbox Code Playgroud)
他们都没有工作.使用>并>>仅将前几行写入文件,然后将其余行写入标准输出.使用more,less,cat等不作任何差别.
是否有GHC标志可以让我输出到文件?
(我应该让你知道我正在使用Cygwin在Windows机器上工作.)
大多数程序将输出写入标准输出(文件描述符1),并将错误消息写入标准错误(文件描述符2).
您可以要求shell将标准错误重定向到另一个位置,如下所示:
ghc File.hs > output.log 2> errors.log
Run Code Online (Sandbox Code Playgroud)
或者如果你想要它们在同一个文件中:
ghc File.hs > output.log 2>&1
Run Code Online (Sandbox Code Playgroud)
有关完整详细信息,请参阅shell的重定向的联机帮助页部分.请注意,shell对重定向的顺序很挑剔.