Haskell 是否可以调试海龟脚本(相当于bash中的-x标志)?

Haskell 是否可以调试海龟脚本(相当于bash中的-x标志)?,haskell,haskell-turtle,Haskell,Haskell Turtle,我最近开始使用Haskell库来替换我的一些shell脚本 有没有一种方法可以在bash脚本中以某种方式启用内置的Turtle命令(如cd)alaset-x?我发现,如果执行了许多命令,其中一个命令因异常而失败(例如cpcommand withexception:openBinaryFile:不存在),那么调试Turtle脚本是非常困难的。或者,您是否有一些建议如何快速隔离此类问题,以便我不必在脚本中穿插puStrLn/echo命令?遗憾的是,这是不可能的,因为turtle不提供跟踪。例如,mv

我最近开始使用Haskell库来替换我的一些shell脚本


有没有一种方法可以在bash脚本中以某种方式启用内置的Turtle命令(如cd)ala
set-x
?我发现,如果执行了许多命令,其中一个命令因异常而失败(例如
cp
command with
exception:openBinaryFile:不存在
),那么调试Turtle脚本是非常困难的。或者,您是否有一些建议如何快速隔离此类问题,以便我不必在脚本中穿插
puStrLn/echo
命令?

遗憾的是,这是不可能的,因为turtle不提供跟踪。例如,
mv
仅使用Haskell函数定义(无shell调用),因此在运行时无法打印任何内容:

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

文档中提到的这一限制,作者建议看一看,这与此类似,但提供了额外的功能:

海龟被设计成初学者友好型,但结果是缺乏 某些功能,如跟踪命令。如果你觉得使用起来舒服的话 那么你也应该去Shelly图书馆看看 提供类似的功能