bug-gnu-utils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Problems with env and perl


From: JW
Subject: Problems with env and perl
Date: Wed, 17 Apr 2002 11:37:58 -0500
User-agent: KNode/0.7.1

Hello,

I sent this the the sh-utils address but thought I'd post it here too, in 
case someone already knows the answer
----------------------------------------------

Hello,

We have had a long discussion on the moongroup mailing list and I have 
finally come to the conclusion that env cannot envoke any interpreter with 
an argument (in spite of what the man and info pages say) from a script.

It works on the command line, as show below, but as the #! in a script it 
fails, treating the argument as part of the executable's name, as if it was 
quoted.

Please, is there any way to get env to envoke perl with the -w and -T 
options?

It is a very big problem for us. I can use "use warnings" in place of -w but 
there is no replacement for -T.

See below for portaions of our thread on the topic 
(address@hidden)

Thank you!


JW >Hey,
JW >
JW >I just ran into a rather serious (for me) problem where some users were 
calling a specifica installation of perl directly in their scripts:
JW >
JW >#!/usr/local/bin/perl -w
JW >
JW >Because we are doing extensive testing with a number of perl 
installations, I _really_ need to change that to:
JW >
JW >#!/usr/bin/env perl -w
JW >
JW >The problem is, env won't take the -w. If I leave it off it works fine:
JW >
JW >#!/usr/bin/env perl
JW >
JW >but as soon as I put the -w back on I get:
JW >/usr/bin/env: perl -w: No such file or directory
JW >
JW >Apparently env thinks "-w" is a binary to execute in addition to perl.
JW >
JW >From the man page I think that env _can_ take args:
JW >
JW >       env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...]
JW >
JW >But how?

JW >TA >On Tue, 16 Apr 2002, David Talkington wrote:
JW >TA >
JW >TA >> >#!/usr/bin/env perl -w
JW >TA >
JW >TA >This will work:
JW >TA >
JW >TA >        #! /usr/bin/env - perl -w
JW >TA >
JW >TA >You were missing the dash to tell env that everything after should 
be
JW >TA >passed on to perl, instead of being a switch for env itself. :)
JW >
JW >But I tried that, having got the idea from the man page. This is what I 
used:
JW >
JW >#!/usr/bin/env - perl -w (or #! /usr/bin/env - perl -w )
JW >
JW >And this is what I get:
JW >
JW >devcp cpbackend2/engine> ./bg_customersubaccountspiderkeyword2 
--customersubaccountid=14 --seid=1 --remote=self
JW >/usr/bin/env: invalid option --
JW >Try `/usr/bin/env --help' for more information.
JW >devcp cpbackend2/engine>
JW >
JW >
JW >Maybe it's freaking out over the shell arguments, I dunno.
JW >
JW >Any more ideas?
JW >

JW >JS >On Tue, 16 Apr 2002, JW wrote:
JW >JS >
JW >JS >
JW >JS >Both the man and info (urggh) page say:
JW >JS >
JW >JS >SYNOPSIS
JW >JS >       env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...]
JW >JS >
JW >JS >DESCRIPTION
JW >JS >       Set each NAME to VALUE in the environment and run COMMAND.
JW >JS >
JW >JS >
JW >JS >So... will it really work like this?
JW >JS >
JW >JS >!#/usr/bin/env - perl -w
JW >JS >
JW >JS >I thought you'd have to give it something like:
JW >JS >
JW >JS >env - PERL=/usr/bin/perl -w
JW >JS >
JW >JS >etc?
JW >JS >
JW >JS >Probably talking through my hat as usual... ;-)
JW >
JW >But that completely defeats the purpose of this exercise, which is to 
have env find perl (yes, perl is moving around ;-).
JW >
JW >Unless it could be:
JW >
JW >    env - PERL=`which perl` -w
JW >
JW >But that's too wierd, I could hardly belive that.
TA >On Wed, 17 Apr 2002, Juha Saarinen wrote:
TA >
TA >> pts/0 address@hidden:~$ env -i PATH=/usr/bin/ perl -w hello.pl
TA >> Hello, World!
TA >
TA >It works from the command line, but not on a shebang line.


TA >Apparently, this will work from the command line:
TA >
TA >    env - perl -we 'print "Foo\n"'
TA >
TA >but not from a shell script. Interesting. Not sure what to tell you.
TA >

--

----------------------------------------------------
Jonathan Wilson
System Administrator
Clickpatrol.com
Cedar Creek Software     http://www.cedarcreeksoftware.com





reply via email to

[Prev in Thread] Current Thread [Next in Thread]