tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: the zen of SIGPIPE



I write hackscripts in python. Typically I write them to consume stdin.

import sys

for i in sys.stdin:
        do stuff

type logic.

Now, if I embed this inside a pipe, and kill the input, python warns me 
about incomplete input state, with a verbose backtrace.

If I want to supress it, I can write

import sys
try:
    for i in sys.stdin:
        do stuff
except:
    sys.exit(0)

the point is, that in scripting, if you get thrown an error from an early 
termination of a pipe you can code for it. But, when writing command 
sequences, you can't. And like the complainant, I find xargs behaviour 
annoying, because it promotes an error state I don't want to be told 
about into my view.

Given how few programs do it, I too am tempted to say 'gee, maybe this is 
better supressed. Maybe this should be on a -v option. Shame about cat -v 
but ...

or an ENV setting?

-G



Home | Main Index | Thread Index | Old Index