On 2022-02-14, Mike Frysinger <vapier@xxxxxxxxxx> 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