2016-10-25 93 views
0

考慮下面的Haskell功能:如何以root身份執行Haskell的命令?

eraseFile :: FilePath -> IO() 
eraseFile basename = 
    do let cmd' = ">" 
     args' = ("/path/to/file/" ++ basename) :: String 
    (exitcode', stdout', stderr') <- readProcessWithExitCode cmd' [args'] "" 
    return() 

當我嘗試在stack ghci REPL運行它,或者從main函數,我從控制檯得到permission denied錯誤。通常情況下,在bash控制檯中,您可以運行此命令作爲sudo,但從Haskell調用時似乎不起作用。

問題:如何以root身份在Haskell中執行系統命令?

+0

你試過以root身份運行'stack ghci'嗎? –

+1

使用sudo應該可以工作。上面的代碼是錯誤的,因爲'>'不是可執行文件的名稱,這是shell語法。 – chi

+0

@TomaszLewowski:是的,但它似乎沒有工作。 – George

回答

相關問題