On 30/08/2007, Mark Haney <mhaney@xxxxxxxxxxxxxxxx> wrote: > I've got a script that's not behaving itself. I know it's something > silly, but I can't figure it out. The script is just a for loop that > runs through a text file list of files (/directory/filename format) and > does an 'ls' on each one. The problem is, I /want/ the script to NOT > find those files, i.e., those files shouldn't be there. That part > works, but I can't dump the output of that into a text file. > > Basically ls dumps all the 'file or directory not found' straight to the > console and not to the text file when I redirect output to it: > > ./missingfiles.sh > testfile.txt > > I get this output: > > ls: cannot access /home2/test/20070829/KVNX20070829_225943_744_3.bz2: No > such file or directory > > to the console and not the text file. How do I fix that? One way would be to check the return value of ls using the $? built in variable. eg in my home directory, i have a file "foo", but not one called "bar": $ ls foo foo $ echo $? 0 $ ls bar ls: cannot access bar: No such file or directory $ echo $? 2 So, when $? is not 0, simply echo filename > somefile.