<span>I might prefer &#39;find&#39; instead of &#39;ls&#39; if there&#39;s a limit with &#39;ls&#39;. There&#39;s also a glob limit in most shells, which may be a consideration here. (I.e., if you have more than 1000(??) *.bad files, the shell will die before even calling &#39;ls&#39;.)
<br><br>Using &#39;find&#39; might turn it into:<br><br>if [ &#39;find . -name &quot;*.bad&quot; -maxdepth 1 | wc -l` ]<br><br>The &#39;maxdepth&#39; argument won&#39;t work on systems without GNU find, I believe. You may or may not need it, depending on whether you have subdirectories you don&#39;t want to search.
<br><br>If that doesn&#39;t work, I would most definitely turn to Perl/</span><span>Ruby/</span><span>Python/TCL/.../Java/D/C/C++/C#.<br><br>Also, while it&#39;s good practice to send stderr to /dev/null,it shouldn&#39;t be at all necessary here. I don&#39;t know of any shells which pass stderr through a pipe unless explicitly directed to do so (
e.g., &quot;2&gt;&amp;1&quot;)<br><br>Chris<br></span><br><div class="gmail_quote">On Dec 20, 2007 4:15 PM, Jerry Heiselman &lt;<a href="mailto:jweida@gmail.com">jweida@gmail.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">On 12/20/07, Matthew Nuzum &lt;<a href="mailto:newz@bearfruit.org">newz@bearfruit.org</a>&gt; wrote:<br>&gt; On Dec 20, 2007 1:58 PM, Major Stubble &lt;<a href="mailto:major.stubble@gmail.com">major.stubble@gmail.com
</a>&gt; wrote:<br>&gt;<br>&gt; &gt; It is the default shell for Solaris. &nbsp;Other Unix systems have some<br>&gt; &gt; version of it available. &nbsp;Linux and BSD typically have pfksh, which<br>&gt; &gt; to my eyes seems less restrictive than the pure ksh&#39;s of the Unix world.
<br>&gt; &gt;<br>&gt; &gt; I myself will typically use sh before ksh or bash for most scripts<br>&gt; &gt; since it is the most restrictive of all. &nbsp;That said, I won&#39;t work in<br>&gt; &gt; a shell environment without my vi keys, so if I am working in bash,
<br>&gt; &gt; it have to &#39;set -o vi&#39;.<br>&gt; &gt;<br>&gt; &gt; All that said, I have never been on a Unix system without ksh. &nbsp;It is<br>&gt; &gt; also true that I have not been on a Linux system without bash.<br>
&gt; &gt;<br>&gt;<br><br></div>It may be beneficial to use the POSIX certified shell on the system,<br>which you should always be able to find by setting your PATH to the<br>result of `getconf PATH`. &nbsp;The first shell found will always be POSIX
<br>compliant and should behave the same on all systems.<br><br>That said, I would probably use the solution utilizing the ls *.bad<br>2&gt;/dev/null | wc -l approach. &nbsp;It does spawn two external programs,<br>but the impact in this instance should be pretty negligible. &nbsp;Of
<br>course, this runs into a problem on most Solaris machines in that if<br>you have more than 250 (I think this is the limit) files, then ls will<br>puke because it has an upper limit. &nbsp;Unfortunately, there really isn&#39;t
<br>a good fix for this except to use another language such as Perl or<br>Python. &nbsp;If you are in this situation, then you will have to go with a<br>for loop as it acts more like an iterator.<br><font color="#888888"><br>--
<br>Jerry H<br></font><div><div></div><div class="Wj3C7c">_______________________________________________<br>Cialug mailing list<br><a href="mailto:Cialug@cialug.org">Cialug@cialug.org</a><br><a href="http://cialug.org/mailman/listinfo/cialug" target="_blank">
http://cialug.org/mailman/listinfo/cialug</a><br></div></div></blockquote></div><br>