如何在 Haskell 中运行系统命令and将其结果(即标准输出)绑定到变量?在伪 Haskell 中,我正在寻找类似以下内容的内容:
import System.Process
main = do output <- callCommand "echo hi"
putStrLn output -- result: "hi"
这是行不通的。有类似的东西吗?
这是一些工作代码:
import System.Process
main :: IO ()
main = do
let stdin' = ""
(errCode, stdout', stderr') <- readProcessWithExitCode "echo" ["hi"] stdin'
putStrLn $ "stdout: " ++ stdout'
putStrLn $ "stderr: " ++ stderr'
putStrLn $ "errCode: " ++ show errCode
正如 Carsten 指出的,您可以使用 readProcess,但我更喜欢这个版本,因为在任何认真的使用中,您很快就会非常困惑为什么您的命令默默地失败(如果您在命令行中运行,stdout 和 stderr 都是,当然,如图所示)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)