2017-10-14 6 views
0
{-# LANGUAGE OverloadedStrings #-} 

import Turtle 

runSh :: Text -> IO() 
runSh x = view $ inshell x empty 

main :: IO() 
main = do 
    runSh "echo 'abcxyz'" 

私は出力を実行上記のプログラムを持っている:ハスケルカメのプロセスからstdoutとstderrの出力をキャプチャする方法はありますか?

Line "abcxyz" 

は、私は、シェルの標準出力に出力されることなく、この出力をキャプチャすることができます方法はありますか?

本質的には、このプロセスを実行して、IOアクションから()値ではなく[Line]値を取得したいと思います。

答えて

1

これはshellStrictWithErrで可能です。

{-# LANGUAGE OverloadedStrings #-} 

import Turtle (empty, shellStrictWithErr, ExitCode) 
import Data.Text (Text) 

runSh :: Text -> IO (ExitCode, Text, Text) 
runSh x' = shellStrictWithErr x' empty 

main :: IO() 
main = do 
    (e, v, v') <- runSh "ls" 
    print e 
    print v 
    print v' 
関連する問題