Jan*_*cek 8 haskell haskell-turtle
我最近开始使用Haskell Turtle库来替换我的一些shell脚本.
有没有办法set -x在bash脚本中以某种方式启用内置Turtle命令(如cd)ala的回声?我发现在执行许多命令并且其中一个命令因异常而失败(如cp命令Exception:openBinaryFile: does not exist)时调试Turtle脚本是很有问题的.或者,您是否有一些建议如何快速隔离这些问题,以便我不必puStrLn/echo在整个脚本中插入命令?
可悲的是,这是不可能的,因为龟不提供追踪.例如,mv仅使用Haskell函数定义(没有shell调用),因此在运行时无法打印任何内容:
mv :: MonadIO io => FilePath -> FilePath -> io ()
mv oldPath newPath = liftIO (Filesystem.rename oldPath newPath)
Run Code Online (Sandbox Code Playgroud)
文档中提到的此限制,作者建议您查看Shelly,它类似但提供额外的功能:
turtle旨在初学者友好,但因此缺少某些功能,如跟踪命令.如果您觉得使用乌龟感觉很舒服,那么您还应该查看提供类似功能的Shelly库.