【问题标题】:Pipe string to shell command in HaskellHaskell中的管道字符串到shell命令
【发布时间】:2018-08-07 02:32:44
【问题描述】:

如何将字符串输入到 shell 命令和 得到它在 Haskell 中产生的输出?

例如,给定这个:

> myHaskellProg 
  "blah"

> myHaskellProg | wc
  4

我想要

> myHaskellProg

通过调用wc 并打印出结果来打印4

我能够使用processcallCommand 调用shell 命令 但是如何通过管道将字符串传递给它并取回结果或stderr?

【问题讨论】:

    标签: haskell process pipe


    【解决方案1】:

    您正在寻找System.Process,您可以使用shell 函数创建进程描述,然后使用readCreateProcess 运行shell 命令,提供标准输入并读取标准输出。

    import System.Process
    main :: IO ()
    main =
      do result <- readCreateProcess (shell "ls") myHaskellString
         putStrLn result
    
    myHaskellString :: String
    myHaskellString = "string"
    

    【讨论】:

    • 您能告诉我如何打印该过程产生的stderr吗?
    • 使用readCreateProcessWithExitCode 捕获返回值和标准错误。
    猜你喜欢
    • 1970-01-01
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多