[Haskell] ANNOUNCE: HsUnix 1.0.1 - Haskell for Unix Shell
Scripting
Andrew Pimlott
andrew at pimlott.net
Mon Feb 9 11:07:39 EST 2004
On Mon, Feb 09, 2004 at 12:49:28PM +0100, Tomasz Zielonka wrote:
> On Sun, Feb 08, 2004 at 09:36:16PM +0100, Volker Wysk wrote:
> > Error Handling
> > Error handling is one thing which is done much more thoroughly in
> > HsUnix than in shells. Failed programs won't be silently ignored.
> > Dynamic exceptions are used for error handling. Non zero exit codes
> > are thrown as exceptions.
>
> Most sh derivaties have -e set option, which causes the shell to (taken
> from FreeBSD sh man page):
>
> -e errexit
> Exit immediately if any untested command fails in non-interactive
> mode.
It doesn't work.
#!/bin/sh -e
cat nosuchfile | echo hello
This script will exit with status 0 (success). If you think about
how traditional unix shells are implemented, you will see that they
can't get this right. (Which proves the non-existence of reliable
non-trivial shell scripts!)
I have my own half-finished shell-in-Haskell that handles this. I
would be interested to know whether HsUnix does.
Andrew
More information about the Haskell
mailing list