Does anyone know of a way to simulate the passing of a block of code as an argument to a function in Bourne shell (or even bash)?   I would like to be able to write an all-encompassing error-checking function that could execute commands, monitor return status, and return error messages.  I typically do this as a way to keep my mainline as un-cluttered as possible.  I know that Ruby programmers will know what I'm asking for.  :)
<br><br>For example....<br>****************************************************************************************<br># The function<br>run_block()<br>&nbsp; { <br>&nbsp;&nbsp;&nbsp; ${*} &gt;${OUTPUT} 2&gt;&amp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Run the block of code
<br>&nbsp;&nbsp;&nbsp; if [ $? != &#39;0&#39; ]; then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Did it run successfully?<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo &quot;&gt;&gt;&gt;&gt;&gt; ERROR DUMP &gt;&gt;&gt;&gt;&gt;&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cat ${OUTPUT}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo &quot;&lt;&lt;&lt;&lt;&lt; END DUMP &lt;&lt;&lt;&lt;&lt;&quot;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 1<br>&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0<br>&nbsp;&nbsp; fi<br>&nbsp; }<br><br><br># The mainline <br># All it does is goes to a directory and untars a file.<br>run_block ( cd random_dir &amp;&amp; tar xvf blah.tar ) &amp;&amp; echo &quot;All done&quot;
<br>****************************************************************************************<br><br>I&#39;m hoping that this isn&#39;t something that&#39;s really simple that I&#39;m overlooking.<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -j
<br>