Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Jul 1999 10:49:36 -0400 (EDT)
From:      Andrew Arensburger <arensb@clue.umiacs.umd.edu>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   bin/12806: `sh -e' doesn't parse multi-command lines correctly
Message-ID:  <199907251449.KAA13223@clue.umiacs.umd.edu>

next in thread | raw e-mail | index | archive | help

>Number:         12806
>Category:       bin
>Synopsis:       `sh -e' doesn't parse multi-command lines correctly
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jul 25 08:00:00 PDT 1999
>Closed-Date:
>Last-Modified:
>Originator:     Andrew Arensburger
>Release:        FreeBSD 3.2-RELEASE i386
>Organization:
University of Maryland Institute for Advanced Computer Studies
>Environment:

        I've found this bug under every version of FreeBSD where I've
tested it:
        FreeBSD 2.2.7-RELEASE i386
        FreeBSD 3.1-RELEASE i386
        FreeBSD 3.2-RELEASE i386

>Description:

        sh(1) 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.

This works fine if the script is of the form 
        cmd1
        cmd2 && cmd3
but not if it is of the form
        cmd1; cmd2 && cmd3

        One practical upshot is that if you have a Makefile built with
GNU automake, "make clean" does not work.

>How-To-Repeat:

        The following two scripts should behave identically:

#!/bin/sh -e
echo before
test foo = bar && echo blah
echo after

#!/bin/sh -e
echo before; test foo = bar && echo blah
echo after

        The first one prints

        before
        after

as expected. The second one, however, prints

        before

and exits.

>Fix:

        Don't know. If I come up with one, I'll let you know.

>Release-Note:
>Audit-Trail:
>Unformatted:


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?199907251449.KAA13223>