Date: Mon, 28 May 2001 09:45:05 -0500 From: Mike Meyer <mwm@mired.org> To: Duke Normandin <01031149@3web.net> Cc: questions@freebsd.org Subject: Re: Need help with Bash function Message-ID: <15122.25713.306089.220192@guru.mired.org> In-Reply-To: <93022994@toto.iv>
next in thread | previous in thread | raw e-mail | index | archive | help
Duke Normandin <01031149@3web.net> types: > I'm trying to debug the following function w/o much success. > > function ezq() { > if [ -a ~/tmp/* ]; then > echo -e "there's something here....\n" > else > echo -e "empty....\n" > fi > } > I keep on getting: > > '[: binary operator expected' > > Is it whinning about the '-a' above? Why? Because -a is a binary operator. It's format is "expresion1 -a expression2", though the message you're getting is strange. I get a different one. > All I want to do is to check to see if a directory is empty or not. > TIA... That's a bit trickier; test - aka '[' - doesn't have any primitives for looking at directories, or arrays of any kind. So you need to generate a list of files in a string - which test can look at - and then check to see if the string is empty or not. The following works for me: function ezq() { if [ -n "`ls ~/tmp`" ]; then echo "there's something here...." else echo empty... fi } <mike -- Mike Meyer <mwm@mired.org> http://www.mired.org/home/mwm/ Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?15122.25713.306089.220192>