HSH is designed to let you mix and match shell expressions with Haskell programs. With HSH, it is possible to easily run shell commands, capture their output or provide their input, and pipe them to/from other shell commands and arbitrary Haskell functions at will.
Here are a few examples to get you started:
run $ "echo /etc/pass*" :: IO String -> "/etc/passwd /etc/passwd-" runIO $ "ls -l" -|- "wc -l" -> 12 runIO $ "ls -l" -|- wcL -> 12 runIO $ ("ls", ["-l", "file with spaces.txt"]) glob "~jgoerzen" >>= cd . head
wcL is a pure Haskell function defined in HSH.ShellEquivs.wcL
More examples at Examples.
You can always download the source from the Downloads page and attach diffs. But it’s far better, both for you and for me, if you use Git.
Last edited by jgoerzen,