2016-10-25 30 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

回答

相关问题