Paolo Bonzini <[email protected]> writes:
> Yeah. But why not the standard
>
> #! /bin/sh
> eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
> if 0;
>
> suggested in perlrun(1)?
Actually that doesn’t work:
--8<---------------cut here---------------start------------->8---
$ ./build-aux/gitlog-to-changelog
/bin/sh: -S: invalid option
--8<---------------cut here---------------end--------------->8---
because perl eventually execs /bin/sh:
--8<---------------cut here---------------start------------->8---
4473 execve("./build-aux/gitlog-to-changelog",
["./build-aux/gitlog-to-changelog"], [/* 60 vars */]) = 0
4473 execve("/var/run/current-system/sw/bin/perl", ["perl", "-S",
"./build-aux/gitlog-to-changelog"], [/* 59 vars */]) = 0
4473 execve("/bin/sh", ["/bin/sh", "-S", "./build-aux/gitlog-to-changelog"],
[/* 59 vars */]) = 0
--8<---------------cut here---------------end--------------->8---
Actually perlrun(1) reads this:
--8<---------------cut here---------------start------------->8---
#!/bin/sh -- # -*- perl -*- -p
eval 'exec perl -wS $0 ${1+"$@"}'
if $running_under_some_shell;
--8<---------------cut here---------------end--------------->8---
... which can’t possibly work.
So I guess I’ll stick to what I suggested.
Thanks,
Ludo’.