OT Shell Script

Alex Zbyslaw xfb52 at dial.pipex.com
Tue Jun 21 10:02:30 GMT 2005


Chris Knipe wrote:

>May be a bit off topic, but I don't know any sh scripting lists that I'm subscribed to... :)
>
>If I run the script from shell / console, it runs without a problem....  Running it via cron, I get: [: 6: unexpected operator
>
>The script:
>#!/bin/sh
>HOSTNAME=`/usr/bin/uname -n`
>SIZE=`/usr/bin/du /var/log/MYAPP/|/usr/bin/cut -c 1-7`
>ROTATE="1024000"
>if [ -e /tmp/.rotate ]; then
>  
>
Maybe your path doesn't have [ in it.  Try

if /bin/[  -e /tmp/.rotate ]; then

or

if /bin/test  -e /tmp/.rotate; then

Same for all your other [ tests.

Or just make sure that /bin is in your path at the top of the script.  
It's often a good idea to set path explicitly for scripts, in case 
someone who runs it has something weird in their path, like their own [ 
or test or whatever.  I notice the rest of the commands all have 
absolute pathnames avoiding the path issue, but I like setting the path 
anyway as it's really easy to forget to use absolute pathnames since we 
are so used to the shell finding things for us at the command line.

--Alex


--Alex



More information about the freebsd-questions mailing list