Well, you said elegant:

#!/bin/bash
dir -1 filex* 2>&1 | grep "No such"
if [ $? -eq 0 ] ; then
echo Dont got one
else
echo Got one
fi

There are two tricks in this simple script.
$? returns the error code of the last command. That's grep, hopefully.
Problem is, dir -1 doesn't send a message to stdout if no file is found,
so you have to redirect stderr to stdout before piping it to grep.

This next script takes advantage of the stdout stuff:

#!/bin/bash
a=`dir -1 filex*` 
if [ -z "$a" ] ; then
echo Dont got one
else
echo Got one
fi

Note, I haven't tested these scripts very much.

Joel



On Sun, Jun 08, 2003 at 04:28:05PM -0500, Michael Hipp wrote:
> Hello, first post (in a long time) ...
> 
> I thought to do something like:
> 
> if [ -f myfile* ]; then
>     # do something
> fi
> 
> That's to find if there are one or more like myfile001, myfile002, but 
> it reports an error "too many arguments" if there is more than one. Any 
> simple/elegant way to do this?
> 
> Thanks,
> Michael
> 
> _______________________________________________
> Linux-users mailing list
> [EMAIL PROTECTED]
> Unsubscribe/Suspend/Etc -> http://www.linux-sxs.org/mailman/listinfo/linux-users
_______________________________________________
Linux-users mailing list
[EMAIL PROTECTED]
Unsubscribe/Suspend/Etc -> http://www.linux-sxs.org/mailman/listinfo/linux-users

Reply via email to