如果我處於需要按順序執行外部命令的情況,那麼最佳解決方案是什麼?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