Re: shebang?

[email protected] (Lars Balker Rasmussen) Tue, 3 May 2011 11:23:47 +0200
Newsgroups perl.copenhagen
Message-ID <[email protected]>
2011/5/3 Jørgen Elgaard Larsen <[email protected]>:
> Jonas Brømsø Nielsen skrev:
>>        #!perl
>
> Det betyder blot: Brug den perl, der ligger i min $PATH.

Ikke på Unix.  Der er man nødt til at skrive

#!/usr/bin/env perl

for at opnå det resultat.

> Shebang siger bare, hvilken kommando, der skal bruges til at køre scriptet.
> Normalt angiver man en fuld sti, men det er fuldt lovligt at bruge en
> relativ sti eller forlade sig på søgestien.

% cat foo.sh
#!perl
sub foo { warn "foo" }
foo;

% chmod a+x foo.sh
% ./foo.sh
./foo.sh: Command not found.
% perl -pi -e 's,perl,/usr/bin/env perl,' foo.sh
% ./foo.sh
foo at ./foo.sh line 3.

> Overvej f.x. denne shebang-linie:
>
>  #!rm -rf /

./foo.sh: Command not found.
-- 
Lars Balker Rasmussen                                        Consult::Perl