2015-09-15 5 views
8

私は最近、Haskell Turtleライブラリを使用して、いくつかのシェルスクリプトを置き換え始めました。Turtleスクリプトをデバッグすることは可能ですか(bashの "-x"フラグに相当)?

bashスクリプトでTurtleコマンド(cdなど)ala set -xのエコーを有効にする方法はありますか?多くのコマンドが実行され、そのうちの1つが例外(たとえばcpコマンドException:openBinaryFile: does not existなど)で失敗した場合、Turtleスクリプトをデバッグするのはかなり問題があることがわかります。あるいは、スクリプトの中にpuStrLn/echoコマンドを散在させる必要がないように、これらのような問題を迅速に特定する方法をいくつかお勧めしますか?

答えて

5

悲しいことに、カメはトレースを提供しないので、悲しいことですが、それは不可能です。例えば、mvはHaskellの機能(なしシェルコール)で定義されているので、それが実行されたときに何かを印刷する方法はありません。

mv :: MonadIO io => FilePath -> FilePath -> io() 
mv oldPath newPath = liftIO (Filesystem.rename oldPath newPath) 

著者が推奨するドキュメントで言及したこの制限似ているShellyを見て、取るが、余分な機能を提供します

カメは初心者に優しいなるように設計されていますが、結果としてコマンドをなぞるように、 特定の機能を欠いています。もしあなたが カメを使用して快適だと感じたら、Shellyライブラリをチェックしてください。 は同様の機能を提供します。

関連する問題