如果我处于需要按顺序执行外部命令的情况,那么最佳解决方案是什么?Haskell:按严格顺序执行外部命令
例如,我有两个命令“创建快照”和“备份快照” 第二个无法启动,直到第一个完成。 如果我有条件地将这两个命令粘在do语法中,它们会被一个接一个地执行还是必须手动检查并确保第一个命令是完整的?
对于手动完成检查,是不是足够使用“系统”或rawSystem”,并检查他们的退出代码?
我不完全理解之间的区别‘系统’和‘runCommand’功能。能有人向我澄清这一点,我只能看到他们返回不同的值:退出代码与进程句柄。其他区别?
我是否需要使用“runCommand”来处理上述序列?是否需要调用等待进程句柄?
感谢。
感谢澄清对我来说。说得通。 – 2012-03-15 05:17:59
在你的例子中,如何在运行第二个程序之前检查第一个程序是否成功终止? – 2012-03-15 05:21:02
@ r.sendecky:'ExitSuccess < - system“make snapshot”'对'system'调用的结果进行模式匹配 - 确保它返回'ExitSuccess'。如果模式匹配失败,则调用[IO的'fail'](http://en.wikibooks.org/wiki/Haskell/do_Notation#Translating_the_bind_operator)。 – rampion 2012-03-15 06:42:52