delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2002/02/13/09:26:25

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
From: "Gerald S. Williams" <gsw AT agere DOT com>
To: <cygwin AT cygwin DOT com>
Cc: "David Gluss" <dgluss AT marple-tech DOT com>,
"Peter J. Acklam" <pjacklam AT online DOT no>
Subject: RE: /usr/bin/env - Incorrect parsing of #! line?
Date: Wed, 13 Feb 2002 09:25:41 -0500
Message-ID: <GBEGLOMMCLDACBPKDIHFCEPKCGAA.gsw@agere.com>
MIME-Version: 1.0
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2911.0)
Importance: Normal
In-Reply-To: <00b901c1b43b$ea06d130$6600a8c0@cherry>
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700

I think DG's and PJA's original assessment was correct and
BASH should be modified. Support for cross-platform scripts
is important, and the #!/bin/env trick is used frequently.

It is also not limited to env--any time you use multiple
arguments to #! you get into trouble. For example, the
following fails:

#!/bin/python -tt -x
print "hello, world"

To avoid this, the scripting program would have to take
special measures to split arguments containing spaces
into multiple arguments. Perl does this, but defeating
the shell's argument parser like this has got to be
dangerous and no doubt involves some degree of magic.
And as we've seen, that still doesn't help if you're
using env to find perl.

Solaris (System V) systems don't combine #! arguments
that way. I don't currently have access to any, but from
what I can recall, I'm pretty sure that SunOS (BSD) and
the various flavors of HP and VAX UNIXes all work like
Solaris in this regard.

Ironically, this difference affects portability between
Linux/Cygwin and traditional UNIX systems, but doesn't
affect Windoze compatibility since only the extensions
matter there and #! is ignored.

I have also seen examples in popular Unix books (such
as the O'Reilly nutshell books) that rely on multiple
arguments.

-Jerry

-O Gerald S. Williams, 22Y-103GA : mailto:gsw AT agere DOT com O-
-O AGERE SYSTEMS, 555 UNION BLVD : office:610-712-8661  O-
-O ALLENTOWN, PA, USA 18109-3286 : mobile:908-672-7592  O-

Christopher Faylor wrote:
> > I think you're misinterpreting the problem.  If it works the same way
> > on linux and on cygwin, then there is nothing to fix.

David Gluss wrote:
> Hmm.  You're right about that.  In that case I will do nothing.
> Of course I've always objected to that behavior...but so it is.


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019