외부 명령을 순서대로 실행해야하는 상황에 있다면 가장 좋은 해결책은 무엇입니까?Haskell : 엄격한 순서로 외부 명령을 실행하십시오
예를 들어, "make snapshot"및 "backup snapshot"명령이 있습니다. 첫 번째 스냅 샷이 완료 될 때까지 두 번째 스냅 샷을 시작할 수 없습니다. do 명령으로 두 명령을 순서대로 지정하면 명령이 차례로 실행됩니까? 아니면 수동으로 확인하고 첫 번째 명령이 완료되었는지 확인해야합니까? 수동 완료 확인을 위해
은 충분히 "시스템"또는 rawSystem을 사용하는 것입니다 "자신의 종료 코드를 검사?나는 완전히 사이의 차이를 이해하지 못한다"시스템 "과"runCommand "기능을. 수 누군가 나에게이 사실을 분명히 해줄 뿐인데, 다른 값을 반환 할 수밖에 없다 : 종료 코드와 프로세스 핸들. 다른 차이점은 무엇입니까?
위의 순서가 작동하려면 오히려 "runCommand"를 사용해야합니까? 프로세스 핸들을 기다리시겠습니까?
감사합니다.
감사합니다.말이된다. –
예를 들어, 두 번째 프로그램을 실행하기 전에 첫 번째 프로그램이 성공적으로 종료되었는지 어떻게 확인합니까? –
@ r.sendecky :'ExitSuccess <- system "make snapshot"은'System' 호출 결과에 대해 패턴 매칭을합니다 - 그것이'ExitSuccess'를 리턴하는지 확인하십시오. 패턴 일치가 실패하면 [IO의'fail'이 호출됩니다] (http://en.wikibooks.org/wiki/Haskell/do_Notation#Translating_the_bind_operator). – rampion