2016-10-28 4 views
1

というシェルスクリプトファイルに、関数定義shell_function() { ...}が含まれています。シェルスクリプトファイルを読み込んでHaskellでその関数にアクセス

私は最終的にIO (String)を取得するために、readProcessWithExitCode shell_function [] ""のようなハスケルで何かできるようにしたいと思います。

これを行う方法?

+0

この質問は非常に広いです。実際のコードと問題の説明を記入してください –

答えて

3

あなたは

#!/bin/bash 

foo() { 
    echo "foo" 
} 

のようなシェルスクリプトを持っている場合は、このように、スクリプトを調達し、一度に関数を実行するためプロセスパッケージからreadCreateProcess機能を使用することができます。

module Main where 

import System.Process 

main :: IO() 
main = do 
    -- I had to put the full path of the script for it to work 
    result <- readCreateProcess ((shell ". /tmp/foo.sh && foo")) "" 
    print result 

この解決策では、機能を定義したり、環境変数を設定したりする際に、不要な "有効な"コードを実行することなくスクリプトを実行することを前提としています。

関連する問題