This is the mail archive of the mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: /usr/bin/env - Incorrect parsing of #! line?

My contribution is running the above script on a HPUX-10.20, so you may
take a better decision:

#!/usr/bin/env perl -v

This gives:
No such file or directory: perl -v

On Solaris2, this gives:
This is perl, v5.6.0 built for sun4-solaris


On Linux:
/usr/bin/env: perl -v: No such file or directory

On cygwin:
/usr/bin/env: perl -v: No such file or directory

So that only works fine on Solaris. I really don't know if there is a good
reason to scramble all arguments into one, and what's the story behind...

A remember that we were limited to 32 (or 31?) characters onto this line
some years ago :-) without advertising so it was happening that only on
character in the switch was missing for the interpreter (try to debug

Gerald S. Williams writes:
] 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 : 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:
] Bug reporting:
] Documentation:
] FAQ:         

           *., ,.**  Benoit Rochefort  *., ,.**

Unsubscribe info:
Bug reporting:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]