我有一个调用Haskell可执行文件的bash脚本,是否有可能让Haskell exe返回一个值,以便它可以存储为bash变量?
例如,假设我有两个文件:haskellFile.hs和BashScript.
(1)我像这样编译haskell文件 ghc -o exe haskellFile.hs
(2)在我的BashScript调用exe这样的./exe arg1 arg2
目前我有我的haskell文件打印输出,但我希望它返回一个值,所以我可以做类似的事情 bashVar = ./exe arg1 arg2
这基本上是我的haskell文件目前的样子:
main :: IO()
main = do (arg1:arg2:_) <- getArgs
let returnValue = someFunction arg1 arg2
print $ returnValue -- But I want it to return a value
Run Code Online (Sandbox Code Playgroud)
程序可以通过以下渠道向shell发送信息:
exitWith.putStr/ putStrLn/ print将信息发送到标准输出,和hPutStr/ hPutStrLn/ hPrint与stderr将信息发送到标准错误.与其他fds沟通更为复杂; 如果你有兴趣,可以这么说,我可以写一点关于这一点.这些通道总是可以用来发送shell-ward信息(当然,你写的任何shell脚本都可以随意忽略任何以这种方式传递的信息!).另外,在调用程序之前,shell可以设置其他通道; 例如命名管道,插座,dbus,共享内存,......
| 归档时间: |
|
| 查看次数: |
141 次 |
| 最近记录: |