On 30/08/2007, Mark Haney <mhaney(a)ercbroadband.org> 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.