2009-11-11 13 views

Répondre

12

Sélectionnez MissingHSystem.Cmd.Utils et la bibliothèque standard System.Process. Ils sont faciles à utiliser, avec des fonctions de commodité de haut niveau (que vous lancez simplement des chaînes et récupérez des chaînes, peut-être paresseusement) et des fonctions de plomberie de bas niveau (qui vous donnent des poignées, comme la plupart des autres langues/cadres).

import System.Process 

main = do 
    let cmd = "mail" 
     args = ["[email protected]", "-s", "does this act like popen?"] 
     input = ["Hello, world!"] 
    (rc, out, err) <- readProcessWithExitCode cmd args input 
    putStrLn $ "mail exited: " ++ show rc 
    mapM_ putStrLn $ map ("out: " ++) $ lines out 
    mapM_ putStrLn $ map ("err: " ++) $ lines err 
+0

Oops, 'input' devrait être un' 'CHAINE' pas [chaîne]'. Eh bien, vous avez l'idée :) – ephemient

+2

Vous pouvez éditer votre message, vous savez ... :) – porges

0

L'autre option pourrait être d'utiliser shelly package