2011/3/7 Kevin Martin <kevintm(a)ameritech.net>:
On 03/07/2011 04:08 PM, Sergio Belkin wrote:
> Hi,
> I am writing a script that it searchs for a file. I'd want to exit
> with status non-zero if the file is not found. But find cannot do
> that.
> find command only exit with status non-zero one file is not processed
> successfully.
>
> locate command con do that, but it cannot find a file from a given directory.
>
> How can I do it?
>
> Thanks in advance!
I find that if I'm in a directory and do a "find <filename>" and it
fails the exit code is 1 (re: $? = 1). So if I'm in a directory
that has files a b c and d and do "find a" I get an exit code of 0 (success)
but if I do a "find e" I get exit code of 1 (failure)
along with a failure message. So in your script you could do:
#!/bin/bash
cd <somedir>
find <filename> 2> /dev/null
if [ "$?" != "0" ]
then
exit 1
fi
Good suggestion
Strangely enough, if I'm in a directory and do a "find . -name e" (where e
doesn't exist) I get *no* failed message and an exit code
of 0. I find that a bit odd as I would think that "find e" and "find .
-name e" would be the same thing. Perhaps that's something
to do with the bash shell?
Perhaps find e try to make some kind of pathname expansion and failing
to do, so it exits with status non-zero.
In manpage find says:
"EXIT STATUS
find exits with status 0 if all files are processed
successfully, greater than 0 if errors occur. This is delib‐
erately a very broad description, but if the return value is
non-zero, you should not rely on the correctness of
the results of find."
So, I guess that exit non-zero for non-existing files it's a bash
thing. It could be nice if find exit with status non-zero whenever
don't find a file into search path.
kevin
--
users mailing list
users(a)lists.fedoraproject.org
To unsubscribe or change subscription options:
https://admin.fedoraproject.org/mailman/listinfo/users
Guidelines:
http://fedoraproject.org/wiki/Mailing_list_guidelines
--
--
Sergio Belkin http://www.sergiobelkin.com
Watch More TV
http://sebelk.blogspot.com
LPIC-2 Certified -
http://www.lpi.org