如何使用readProcessWithExitCode?

时间:2016-08-15 16:53:00

标签: haskell

此命令在我的终端中正常运行:

grep --include=\\*.txt --recursive --regexp='answer'

这个在ghci中运行良好:

import System.Process
r <- readCreateProcessWithExitCode (shell "grep --include=\\*.txt --recursive --regexp='answer'") ""

但是这个在ghci中失败了:

import System.Process
r <- readProcessWithExitCode "grep" ["--include=\\*.txt", "--recursive", "--regexp='answer'"] ""

返回(ExitFailure 1,"","")

我做得不好吗?

更新

这个有效:

readProcessWithExitCode "grep" ["-r", "-e 'answer'"]

看起来无法设置以--开头的选项。

1 个答案:

答案 0 :(得分:3)

您确定此命令在您的终端中有效:

grep --include=\\*.txt --recursive --regexp='answer'

在我的系统上,我收到警告:

grep: warning: recursive search of stdin

尝试添加.作为附加参数:

readProcessWithExitCode "grep" ["--include=\\*.txt", "--recursive", "--regexp='answer'", "."] ""

<强>更新

这种将参数传递给grep的简单方法对我有用:

readProcessWithExitCode "grep" ["--include", "*.hs", "--recursive", "--regexp", "answer", "."] ""