[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: portability of xargs
From: |
Nick Bowler |
Subject: |
Re: portability of xargs |
Date: |
Tue, 15 Feb 2022 16:01:24 -0500 |
On 2022-02-14, Mike Frysinger <vapier@gentoo.org> wrote:
> context: https://bugs.gnu.org/53340
>
> how portable is xargs ? like, beyond POSIX, as autoconf & automake both
> support non-POSIX compliant systems. i want to use it in its simplest
> form: `echo $var | xargs rm -f`.
As far as I can tell xargs was introduced in the original System V UNIX
(ca. 1983). This utility subsequently made its way back into V10 UNIX
(ca. 1989) and subsequently 4.3BSD-Reno (ca. 1990) and from there to
basically everywhere. The original implementation from System V
supports the "-x", "-l", "-i", "-t", "-e", "-s", "-n" and "-p" options.
Of these, POSIX only chose to standardize "-x", "-t", "-s", "-n" and
"-p" suggesting possible incompatibilities with other options.
HP-UX 11 xargs expects the last filename to be followed by a white-space
character, or it will be ignored:
gnu% printf 'no blank at the end' | xargs printf '[%s]'; echo
[no][blank][at][the][end]
hpux11% printf 'no blank at the end' | xargs printf '[%s]'; echo
[no][blank][at][the]
The HP-UX 11 behaviour is also observed on Ultrix 4.5, but not on
4.3BSD-Reno. Since xargs input typically ends with a newline, this is
not a serious practical problem.
Cheers,
Nick
- Re: portability of xargs, (continued)
- Re: portability of xargs, Daniel Herring, 2022/02/15
- Re: portability of xargs,
Nick Bowler <=