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中执行系统命令?
你试过以root身份运行'stack ghci'吗? –
使用sudo应该可以工作。上面的代码是错误的,因为'>'不是可执行文件的名称,这是shell语法。 – chi
@TomaszLewowski:是的,但它似乎没有工作。 – George