[ale] bash script problem

Charles Shapiro hooterpincher at gmail.com
Fri Dec 15 13:43:51 EST 2006


Isn't "if" a bash built-in?  If so, I'd expect:

CMD="/bin/bash -c 'if [ -e /var/lib/clamav/daily.cvd ]; then ls
-al /var/lib/clamav/daily.cvd; else echo; fi' "

would work better.

-- CHS



On 12/15/06, Jim Popovitch <jimpop at yahoo.com> wrote:
>
> Below is a small script that i use to check the status of ClamAV's
> daily.cvd file on a bunch of servers.  This works for all remote servers
> listed in ~/.hosts, but if the host equals `hostname` the command fails
> to execute with the error "line 1: if: command not found".  Now, if I
> remove the "if ..." logic in CMD and replace it just with "ls -al ...."
> then the command succeeds for all hosts including the local machine it
> is run on.  Any ideas on why the "if" fails?
>
> --------------------
> #!/bin/sh
>
> CMD="if [ -e /var/lib/clamav/daily.cvd ]; then ls
> -al /var/lib/clamav/daily.cvd; else echo; fi"
>
> me=`hostname`
>
> for host in `cat ~/.hosts`; do
>    echo -n "$host       ";
>    if [ $host = $me ]; then
>         `$CMD`;
>    else
>        ssh $host $CMD;
>    fi
> done
> ---------------------
>
> Thanks,
>
> -Jim P.
>
> _______________________________________________
> Ale mailing list
> Ale at ale.org
> http://www.ale.org/mailman/listinfo/ale
>
-------------- next part --------------
An HTML attachment was scrubbed...




More information about the Ale mailing list