[Toybox] xargs with blank input
Rob Landley
rob at landley.net
Sat Nov 2 13:58:12 PDT 2013
On 10/16/2013 11:35:15 PM, Robert Thompson wrote:
> Not that it's really relevant to most linux environments, but the OSX
> version (with a BSD manpage) appears to not execute any commandline
> that
> would have no added arguments. A quick test suggests this is true for
> both
> normal and null-separated modes.
>
> Specifically, echo "" | xargs echo foo; echo "returned $?" will output
> exactly one line: "returned 0", instead of the two lines seen on my
> debian
> test box. On the other hand, echo "bar" | xargs echo foo; echo
> "returned
> $?" behaves identically on both machines.
William implied that there were package builds that failed with the
previous toybox behavior? (It would be nice to know what those were.)
I keep forgetting that the default of xargs is "echo" and thus piping
things into "xargs echo" myself when I want to collate lots of lines
onto a single line.
> The manpage mentions that "The xargs utility is expected to be IEEE
> Std
> 1003.2 (``POSIX.2'') compliant.", for what it's worth.
Posix has holes you could drive a truck through. Its failure mode is
failing to specify stuff. (As failure modes go, that's a good one, but
the way it pretends mount and init don't exist is kinda annoying.)
> It appears that they are reading the "shall construct ..." to
> instruct that
> if no arguments are read, there is no complete commandline, thus the
> xargs
> terminates without ever trying to launch a process, but without any
> error.
Would a good rule be "if the input had a newline, we got a command
line. If the input was literally no data, we didn't"?
> My tests on current osx 10.8 indicate that xargs never execs the
> utility
> and returns 0 for success.
The segfault was wrong, anyway. I applied the patch. This should give
you some idea how far behind I am on my email, but I just finished my
second week at the new job and may be reclaiming some sort of semblance
of normality, so... trying to catch up.
(If wasn't linux-kernel Documentation maintainer and could afford to
skip that list, this would be easier...)
Rob
More information about the Toybox
mailing list