Date: Tue, 14 Feb 2012 15:25:07 -0500 From: Matthew Story <matthewstory@gmail.com> To: freebsd-hackers@freebsd.org Subject: Re: xargs short-circuit Message-ID: <CAB%2B9ogfqyXb5PAWLWt3MFTcvbhi_1vF0ffOByT8TiMqS9sOsoQ@mail.gmail.com> In-Reply-To: <CAB%2B9ogfWXOGyv7uSDomSP0QY4goeaSGncGCTD10Jjh0fZ627FQ@mail.gmail.com> References: <CAB%2B9ogcT3OxMKwTY%2B8KfzJfcBiHRBnSdSxcy2eYR6bn=uoL1UQ@mail.gmail.com> <20120214193530.GA42580@stack.nl> <CAB%2B9ogfWXOGyv7uSDomSP0QY4goeaSGncGCTD10Jjh0fZ627FQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Feb 14, 2012 at 2:37 PM, Matthew Story <matthewstory@gmail.com>wrote: > On Tue, Feb 14, 2012 at 2:35 PM, Jilles Tjoelker <jilles@stack.nl> wrote: > >> On Tue, Feb 14, 2012 at 01:34:49PM -0500, Matthew Story wrote: >> > After reading the man-page, and browsing around the internet for a >> minute, >> > I was just wondering if there is an option in (any) xargs to >> short-circuit >> > on first failure of [utility [arguments]]. >> >> > e.g. >> >> > $ jot - 1 10 | xargs -e -n1 sh -c 'echo "$*"; echo exit 1' worker || >> echo $? >> > 1 >> > 1 >> >> > such that any non-0 exit code in a child process would cause xargs to >> stop >> > processing. seems like this would be a nice feature to have. >> >> As per xargs(1), you can do this by having the command exit on a signal >> or with a value of 255. >> > exit 255 with -P, and SIGTERM (with or without -P) causes FreeBSD xargs to orphan, is this desirable behavior? findutils xargs orphans on 255 and SIGTERM (with -P), but does not orphan without -P when SIGTERM is sent. I would expect xargs to propegate the signal, or wait, although the man page does say "immediately", the POSIX specification is less clear ... this makes it more-or-less unsuitable for my needs, but i guess i could do something like: ... | xargs sh -c '... exit 255;' if [ $? -ne 0 ]; then wait # cleanup exit 1 fi > > Yes indeed it does ... should have scoured further, thanks! > > >> >> -- >> Jilles Tjoelker >> > > > > -- > regards, > matt > -- regards, matt
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAB%2B9ogfqyXb5PAWLWt3MFTcvbhi_1vF0ffOByT8TiMqS9sOsoQ>