Haskell: Выполнять внешние команды в строгой последовательности

Если я нахожусь в ситуации, когда мне нужно последовательно выполнять внешние команды, какое решение будет лучшим?

Например, у меня есть две команды «сделать снимок» и «создать резервную копию снимка». Второй не может начаться, пока первый не будет завершен. Если я упорядоченно вставлю эти две команды в синтаксис do, будут ли они выполняться одна за другой, или мне придется вручную проверять и убедиться, что первая завершена?

Достаточно ли для ручной проверки завершения использовать «system» или «rawSystem» и изучить их код выхода?

Я не совсем понимаю разницу между функциями «system» и «runCommand». Может кто-нибудь пояснить это мне. Я вижу только, что они возвращают разные значения: код выхода и дескриптор процесса. Есть ли другие различия?

Нужно ли мне использовать "runCommand" для работы приведенной выше последовательности? Нужно ли мне вызывать ожидание на дескриптор процесса?

Спасибо.

7
задан r.sendecky 15 March 2012 в 03:05
поделиться