sam*_*m46 2 haskell pipe process
如何将字符串输入 shell 命令并获取它在 Haskell 中产生的输出?
例如,考虑到:
> myHaskellProg
"blah"
> myHaskellProg | wc
4
Run Code Online (Sandbox Code Playgroud)
我想
> myHaskellProg
Run Code Online (Sandbox Code Playgroud)
4通过调用wc并打印结果来打印
我能够使用process's调用 shell 命令callCommand
,但如何通过管道将字符串传递给它并返回结果或 stderr?
您正在寻找System.Process并且可以使用该shell函数来创建进程的描述,然后用于readCreateProcess运行 shell 命令、提供标准输入并读取标准输出。
import System.Process
main :: IO ()
main =
do result <- readCreateProcess (shell "ls") myHaskellString
putStrLn result
myHaskellString :: String
myHaskellString = "string"
Run Code Online (Sandbox Code Playgroud)