[lkml]   [2002]   [Sep]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [BUG?] binfmt_script: interpreted interpreter doesn't work

On Sun, 15 Sep 2002, Hans-Peter Jansen wrote:

> > Consider these two scripts:
> >
> > /home/pozsy/a:
> > #!/usr/bin/perl
> > print <>;
> >
> > /home/pozsy/b:
> > #!/home/pozsy/a
> > "This is some text to printed out by the 'a' script"

> What's the problem?

I have a script written in perl, which interprets its input (or the files
in its arguments) [this is "a" in the above example]. I want to use this
script, as an interpreter to another "script" [the "b" in the above

I well know bash, but this has nothing to do with shell coding.

Try my above example and you will understand what the problem is.
If you execute /home/pozsy/b, you _should_ get this as the output (2
lines) (the "a" program simply cats its input or argument files to its
"This is some text to printed out by the 'a' script"

BUT this is what you get (1 line):
/home/pozsy/b: This is some text to printed out by the 'a' script: command
not found

This is because the kernel cannot execute the "/home/pozsy/b" script, and
then bash tries to interpret it itself. (but this in *not* what I want: I
want the "b" 'script' interpreted by the "a" script).
If you try this:
strace -f /home/pozsy/b
You will get this:
execve("/home/pozsy/b", ["/home/pozsy/b"], [/* 24 vars */]) = 0
strace: exec: Exec format error

The root of the problem is still that /home/pozsy/b cannot be execve'd.
That is a kernel problem.


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:28    [W:0.043 / U:0.072 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site