此命令在我的终端中正常运行:
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'"]
看起来无法设置以--
开头的选项。
答案 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", "."] ""