zsh-users
 help / color / mirror / code / Atom feed
* Slightly OT: Error-Handling in a Pipeline, preferably non-zsh
@ 2004-08-16  1:04 Aaron Davies
  2004-08-16  2:42 ` Bart Schaefer
  2004-08-16  3:03 ` Philippe Troin
  0 siblings, 2 replies; 12+ messages in thread
From: Aaron Davies @ 2004-08-16  1:04 UTC (permalink / raw)
  To: zsh-users

How do I do return-value error handling in the middle of a pipeline? 
I'd ideally like to keep this to as basic a shell level as possible, 
plain (Bourne) sh-compatible if it can be done, though a bash or zsh 
solution will be fine if not. I'm tring to write a simple script that 
will apply a command to all processes matching a name--sort of a 
generalized "killall". At the moment, it looks like this:

#!/bin/sh

name=$1
shift

ps aux | grep $name | grep -v grep | grep -v $0 | awk '{ print $2 }' | 
xargs $@

and it works fine, and I'd like to keep it at that level of simplicity. 
The only thing is, I'd like to make it stop and return 1 if there are 
no matching processes. (At the moment, it calls the command with an 
empty argument list.) The intuitive thing to do seems to be

ps aux | grep $name | grep -v grep | ( grep -v $0 || exit 1 ) | awk '{ 
print $2 }' | xargs $@

but that doesn't work. Any ideas? (I could, of course, simply cache the 
last grep's results in a tmpfile, test its length, and proceed 
accordingly, but that doesn't seem quite as elegant.
-- 
Aaron Davies
agdavi01@louisville.edu


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2004-08-17  3:08 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-08-16  1:04 Slightly OT: Error-Handling in a Pipeline, preferably non-zsh Aaron Davies
2004-08-16  2:42 ` Bart Schaefer
2004-08-16  3:33   ` Aaron Davies
2004-08-16  7:41     ` Bart Schaefer
2004-08-16 12:40       ` Aaron Davies
2004-08-16 14:53         ` DervishD
2004-08-17  3:06           ` Bart Schaefer
2004-08-16  3:03 ` Philippe Troin
2004-08-16  3:30   ` Aaron Davies
2004-08-16  7:51     ` Bart Schaefer
2004-08-16 12:41       ` Aaron Davies
2004-08-16 16:08         ` Dan Nelson

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).