【问题标题】:Executing a system command in Haskell在 Haskell 中执行系统命令
【发布时间】:2011-03-29 02:37:58
【问题描述】:

我如何在 Haskell 中执行诸如cp somefile somedestination 之类的系统命令?

类似于os.Exec

【问题讨论】:

标签: haskell process system


【解决方案1】:

我不是 Haskell 爱好者,但 this 可能就是您要找的东西

【讨论】:

  • 在链接旁边的答案上放一个完整的例子......
【解决方案2】:

Haskell 98 标准提供:

System.system :: String
              -> IO GHC.IO.Exception.ExitCode

执行命令。

不过,新的System.Process 库更有用,它允许便携式输入/输出重定向等等。

【讨论】:

  • 注意如果你真的想复制一个文件,你应该使用copyfile
  • @ThomasM.DuBuisson:打电话给cp 有什么不安全的地方,还是copyfile 更简单?
  • @amindfv 这是一个可移植性问题。你怎么知道cp 命令对于你当前的平台是正确的?你怎么知道二进制文件在路径中?等等等等。
  • 我无法解析这个函数。需要什么样的进口或资质?我最终使用了System.Cmd.system
  • 这绝对不是一个完整的例子。
【解决方案3】:

如果你经常做这种事情,那么值得看看http://hackage.haskell.org/package/HSH

【讨论】:

    【解决方案4】:
    import System.Process
    
    main = callCommand "cp somefile somedestination"
    

    正常工作,但您可能更喜欢 System.Process 模块中的其他功能。

    【讨论】:

    • 我认为是 runCommand(我得到了Not in scope: `callCommand'
    • 不,callCommand 是正确的 - runCommand 做了不同的事情
    猜你喜欢
    • 2011-03-12
    • 1970-01-01
    • 2021-09-07
    • 2014-04-16
    • 2011-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多