2015-09-15 15 views
8

Gần đây tôi đã bắt đầu sử dụng thư viện Haskell Turtle để thay thế một số tập lệnh shell của tôi.Có thể gỡ lỗi các tập lệnh Turtle (tương đương cờ "-x" trong bash) không?

Có cách nào đó bằng cách nào đó cho phép lặp lại các lệnh Rùa được xây dựng (như cd) ala set -x trong các tập lệnh bash không? Tôi tìm thấy nó khá có vấn đề để gỡ lỗi các script Turtle trong trường hợp có nhiều lệnh được thực thi và một trong số chúng không thành công với ngoại lệ (như lệnh cp với Exception:openBinaryFile: does not exist). Ngoài ra, bạn có một số đề xuất làm thế nào để nhanh chóng cô lập các vấn đề như thế này, để tôi không phải xen kẽ các lệnh puStrLn/echo trong suốt tập lệnh của tôi không?

Trả lời

5

Đáng buồn thay, điều đó là không thể, vì rùa không cung cấp truy tìm. Ví dụ, mv được định nghĩa chỉ với Haskell chức năng (không gọi vỏ), vì vậy không có cách nào để in bất cứ điều gì khi nó là ran:

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

Hạn chế này được đề cập trong tài liệu hướng dẫn, nơi mà các tác giả khuyến cáo để có một cái nhìn tại Shelly, mà là tương tự nhưng cung cấp tính năng bổ sung:

rùa được thiết kế để người mới bắt đầu thân thiện, nhưng kết quả là thiếu tính năng nhất định, như truy tìm lệnh. Nếu bạn cảm thấy thoải mái khi sử dụng rùa thì bạn cũng nên xem thư viện Shelly mà cung cấp chức năng tương tự.

Các vấn đề liên quan