4 Stimmen

Wie erhält man den Exit-Code eines Systemprozesses?

Angenommen, ich möchte den Befehl ausführen unrar x archivename aus Haskell heraus.

Wie gehe ich am besten vor, und wie erhalte ich den Exit-Code des Befehls? Wenn der Befehl erfolgreich beendet wurde, möchte ich das Archiv löschen, ansonsten nicht.

3voto

Thomas M. DuBuisson Punkte 63725

In der process Bibliothek finden Sie die Funktion readProcessWithExitCode die genau das tut, was Sie wollen. Etwas wie:

(e,_,_) <- readProcessWithExitCode "unrar" ["unrar", "x", "-p-", "archivename"] ""
if e == ExitSuccess then ... else ...

Es gibt auch viele andere Lösungen, wie zum Beispiel die system Befehl. Wählen Sie aus.

3voto

hammar Punkte 136080

En readProcessWithExitCode Funktion von System.Process sollte die Aufgabe erfüllen.

import Control.Monad
import System.Directory
import System.Exit
import System.Process

main = do
    (exitCode, _, _) <- readProcessWithExitCode "unrar" ["x", "archivename"] ""
    when (exitCode == ExitSuccess) $ removeFile "archivename"

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X