pipestatus is a source file for UNIX/POSIX shell that allows you to obtain an exit status of every program in a pipe.
When we program in shell we often run pipes like this
prog1 args1 | prog2 args2 | ... | progN argsN
POSIX says that exit status of pipe is the exit status of LAST program in it, i.e. progN in our example. That is, exit status of all other programs in pipe is silently ignored. But in many situations exit status of all programs in pipe should be checked to make program robust. Some shells like BASH and ZSH have special extensions for doing this but POSIX shell unfortunately doesn't provide an EASY way for doing this.
What's New in This Release:
· 'check_status_re' and therefore 'runpipe_re' use 'grep -E' instead of 'grep' in order to simplify regexp that contains >=2 digit exit statuses.
NOTE: Formally speaking this breaks backward compatibility.
· If PIPESTATUS_VERBOSE variable is set to non-empty string, then check_status0 and check_status_re functions print an error message to stderr.
What's New in This Release: [ read full changelog ]
· Symbols such as "'`*?&|; are correctly escaped before being sent to eval.
· As a result, all these symbols are allowed in commands.
· Support for the /bin/sh of Solaris was added.