如何从Haskell中的分叉进程读取数据?

lkn*_*dhu 2 haskell system process

谁可以给我一个简短的例子,我调用一些系统命令,然后用haskell读出来,例如打印出来?

我知道我可以使用System.Cmd来制作系统命令,如:nm,ls,mkdir等.

但我不需要只调用它们我需要读取它并使用readed字符串进行一些操作

Don*_*art 7

关键库的使用是process,它提供System.Process.

要调用命令并获取其输出:

readProcess
      :: FilePath   -- command to run
      -> [String]   -- any arguments
      -> String         -- standard input
      -> IO String  -- stdout
Run Code Online (Sandbox Code Playgroud)

像这样:

import System.Process

main = do
    s <- readProcess "/bin/date" [] []
    putStrLn $ "The date is " ++ s
Run Code Online (Sandbox Code Playgroud)

运行方式如下:

The date is Fri Apr 29 09:29:29 PDT 2011
Run Code Online (Sandbox Code Playgroud)