Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Mar 1998 23:59:56 -0800
From:      Studded <Studded@dal.net>
To:        dancy@franz.com
Cc:        freebsd-gnats-submit@FreeBSD.ORG, freebsd-bugs@FreeBSD.ORG
Subject:   Re: bin/6047: bash does not handle -e option properly
Message-ID:  <350F7EFC.4EF45447@dal.net>
References:  <199803180104.RAA13084@hub.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
dancy@franz.com wrote:
> 
> >Number:         6047
> >Category:       bin
> >Synopsis:       bash does not handle -e option properly

	Bash != /bin/sh

> >Description:
> The following shell script does not work as it should:
> 
> #!/bin/sh
> set -e
> 
> is_net_dir_p()
> {
>         case $1 in
>         /net/*)
>                 return 0
>                 ;;
>         *)      return 1
>                 ;;
>         esac
> }
> 
> if is_net_dir_p freebsd; then
>         echo okay
> fi
> echo done
> 
> ---
> A properly working /bin/sh would print 'done' and exit.  Currently
> nothing is printed and the shell silently exits.
> 
> The man page for 'sh' says:
> 
>      -e errexit
>              If not interactive, exit immediately if any untested command
>              fails.  The exit status of a command is considered to be explic-
>              itly tested if the command is used to control an if, elif, while,
>              or until; or if the command is the left hand operand of an ``&&''
>              or ``||'' operator.

	Actually it's doing just what it should. Your function fails, so the
shell should exit silently. You can demonstrate by commenting out the
set line and running the script again. Also, I'm not sure what /net/* is
supposed to be testing for, but that looks an awful lot like you're
mixing perl syntax with sh. 

	What are you actually trying to accomplish here?

Doug

-- 
***         Chief Operations Officer, DALnet IRC network       ***
*** Proud operator, designer and maintainer of the world's largest
*** Internet Relay Chat server.  5,328 clients and still growing.
*** Try spider.dal.net on ports 6662-4    (Powered by FreeBSD)

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?350F7EFC.4EF45447>