2016-10-25 15 views
0

は、以下のHaskellの関数を考えてみましょう:私はstack ghci REPLでこれを実行しようとするとHaskellからrootとしてコマンドを実行するには?

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

、またはメイン関数から、私はコンソールからpermission deniedエラーが発生します。通常、bashコンソールでは、このコマンドをsudoとして実行できますが、これはHaskellから呼び出されたときには動作しません。

質問: Haskellでシステムコマンドをrootとして実行するにはどうすればよいですか?

+0

rootとして 'stack ghci'を実行しようとしましたか? –

+1

sudoを使うとうまくいくはずです。 '>'は実行可能な名前ではないので、上記のコードは間違っています。これはシェルの構文です。 – chi

+0

@TomaszLewowski:はい、動作しませんでした。 – George

答えて

関連する問題