2010-08-12 34 views
9
執行系統命令

我怎麼能執行系統命令,如在Haskell cp somefile somedestination在Haskell

一樣的東西os.Exec

+0

http://stackoverflow.com/questions/9713448/haskell-execute-external-commands-in-strict-sequence – gliptak 2013-10-01 17:28:52

回答

11

哈斯克爾98標準規定:

System.system :: String 
       -> IO GHC.IO.Exception.ExitCode 

,其執行命令。

System.Process庫是比較有用的,雖然,允許便攜式輸入/輸出重定向等等。

+0

請注意,如果您真的希望複製您應該使用[copyfile]的文件(http://haskell.org/hoogle/?hoogle=%3A%3A+FilePath+-%3E +文件路徑+ - %3E + IO +%28%29)。 – 2010-08-13 13:44:14

+0

@ ThomasM.DuBuisson:有沒有不安全的調用'cp',或者'copyfile'只是簡單一些? – amindfv 2013-04-27 16:56:23

+3

@amindfv這是一個可移植性問題。你怎麼知道'cp'命令對你當前的平臺是正確的?你怎麼知道二進制文件在路徑中?等等。 – 2013-04-27 20:05:49

2

我不是一個Haskell愛好者,但this可能是你在找什麼

+0

爲我工作。謝謝。 – 2010-08-12 18:57:21

+0

@Clark太棒了,很高興我可以提供幫助 – 2010-08-12 19:14:03

1
module Main where 

import System.Process 

main = callCommand "cp somefile somedestination" 

只是起作用,但您可能更喜歡System.Process模塊​​中的其他功能。

+0

我認爲這是runCommand(我'不在範圍內:\'callCommand'') – peer 2016-02-01 00:39:17