lkml.org 
[lkml]   [2001]   [Mar]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRE: binfmt_script and ^M
    Date
    > Andreas Schwab wrote:
    > > Paul Flinders <paul@dawa.demon.co.uk> writes:
    > > |> Andreas Schwab wrote:
    > > |>
    > > |> > This [isspace('\r') == 1] has no significance here. The
    > right thing to
    > > |>
    > > |> > look at is $IFS, which does not contain \r by default.
    > The shell only splits
    > > |>
    > > |> > words by "IFS whitespace", and the kernel should be
    > consistent with it:
    > > |> >
    > > |> > $ echo -e 'ls foo\r' | sh
    > > |> > ls: foo: No such file or directory
    > > |>
    > > |> The problem with that argument is that #!<interpreter> can be applied
    > > |> to more than just shells which understand $IFS, so which environment
    > > |> variable does the kernel pick?
    > >
    > > The kernel should use the same default value of IFS as the Bourne shell,
    > > ie. the same value you'll get with /bin/sh -c 'echo "$IFS"'. This is
    > > independent of any settings in the environment.
    > >
    > > |> It's a difficult one - logically white space should
    > terminate the interpreter
    > >
    > > No, IFS-whitespace delimits arguments in the Bourne shell.
    >
    > Way back whenever processing #! was moved from the
    > shell to the kernel** this argument would have made sense -
    > today I'm not so sure.
    >
    > But I'm quite happy for the kernel to use just space and
    > tab if it wishes, or anything else for that matter but it _is_
    > confusing that the error code doesn't distinguish problems
    > with the script from problems with the interpreter.
    >
    > **Did linux ever rely on the shell for this?

    Maybe the correct answer would be to create a proc entry for this.
    That allow the user to decide what is whitespace on his machine,
    since nobody here appears to agree.

    User: hmm... Wonder what happes if i do the following
    %cat '$#! \n\t\r' > /proc/whitespace
    later, % config.sh : Error file not found.
    Oops, bug report... ;-)

    Laramie

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:29    [W:0.035 / U:88.936 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site