[x3d-public] Bash function to catch return value

Leonard Daly Leonard.Daly at realism.com
Sat Jul 22 19:00:40 PDT 2023


Not sure why you would want a script as this is almost always done in-line.

$? contains the exit status. 0 is almost always success (I don't know 
where it is not) and != 0 is failure. Error message is written to STDERR 
unless you direct a command to fail silently.

So something like

(A | B | C ...) 2> /tmp/pipe-$$.err if [ $? -ne 0 ] then   exitCode=$?   
cat /tmp/pipe-$$.err   exit $exitCode fi

Passing the piped command to a function can be dangerous/difficult 
because of shell interpolation and quoting. Also note that the piped 
output (STDOUT) is printed on the default (at the time of the pipe) 
output (probably console), and pipe-$$.err is never cleaned up 
(deleted). That is not really bad because most systems delete files 
after 24-48 hours in /tmp. If there are no errors, then /tmp/pipe-$$.err 
is never created.

Additional useful info: 
https://unix.stackexchange.com/questions/164482/pipe-redirect-a-group-of-commands

Leonard Daly



On 7/21/2023 10:15 PM, John Carlson wrote:
> Linux folks:
>
> Does anyone have a bash function (not a separate script) to check the 
> exit status of the passed in  pipeline or passed in exit status, print 
> out the passed in error message, and exit the script if the exit 
> status indicates failure?
>
> Thanks!
>
> Should be fairly easy to write?
>
> John
>
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
-- 
*Leonard Daly*
3D Systems Engineering
President, Daly Realism - /Creating the Future/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230722/17aea2d8/attachment.html>


More information about the x3d-public mailing list