Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 May 2001 12:21:31 -0400
From:      Jim Conner <jconner@enterit.com>
To:        Mike Meyer <mwm@mired.org>
Cc:        Duke Normandin <01031149@3web.net>, questions@freebsd.org
Subject:   Re: Need help with Bash function
Message-ID:  <5.1.0.14.0.20010528112740.0239cd68@mail.enterit.com>
In-Reply-To: <15122.25713.306089.220192@guru.mired.org>
References:  <93022994@toto.iv>

next in thread | previous in thread | raw e-mail | index | archive | help
The only thing you are lacking is quotes in your condition...

  function ezq() {
      if [ -a "~/tmp/*" ]
      then
          echo -e "there's something here....\n"
      else
          echo -e "empty....\n"
    fi
  }

Now, I ususally use ksh but bash should be able to do the same thing.


At 09:45 AM 5/28/2001 -0500, Mike Meyer wrote:
>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


- Jim
- NOTJames
- jconner@enterit.com

- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- | Today's errors, in contrast:                                           |
- | Windows - "Invalid page fault in module kernel32.dll at 0032:A16F2935" |
- | UNIX    - "segmentation fault - core dumped"                           |
- | Humans  - "OOPS, I've fallen and I can't get up"                       |
- --------------------------------------------------------------------------
- (To view this properly use a non-proportional font in your MUA)


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?5.1.0.14.0.20010528112740.0239cd68>