是否有可能在Haskell中编写shell脚本,如果是这样,你是如何做到的?只是改变翻译就好吗?
#!/bin/ghci
答案 0 :(得分:43)
使用ghci
只会在GHCi中加载模块。要将其作为脚本运行,请使用runhaskell
或runghc
:
#!/usr/bin/env runhaskell
main = putStrLn "Hello World!"
答案 1 :(得分:13)
答案 2 :(得分:11)
如果您将解释器更改为:
,它应该可以工作#!/usr/bin/runhaskell
答案 3 :(得分:5)
截至2016年10月,这个问题有了更好的答案:使用The Haskell Tool Stack script interpreter。基于stack
的Haskell脚本是可移植的,因为它们下载(并缓存)正确版本的ghc
及其所有包依赖项。
#!/usr/bin/env stack
-- stack --resolver lts-3.2 --install-ghc runghc
main = putStrLn "Hello World!"
答案 4 :(得分:3)
使用Haskell编写shell脚本的另一种方法是生成脚本,例如使用bashkell。如果您可能希望在未安装haskell的系统上运行,这将非常有用。