weird while shellscript problem

Manuel Arostegui Ramirez manuel at todo-linux.com
Thu Jun 7 13:08:17 UTC 2007


El Jueves, 7 de Junio de 2007 15:00, Manuel Arostegui Ramirez escribió:
> Hi folks
>
> I'm completely lost due to probably I'm missing something but I cannot find
> what is it.
> I'm porting an AIX shell script to linux.
> It's supposed to run between two hours the user select in a .conf file
> which is more or less something like:
>
> min_hour 9
>
> max_hour 11
>
> If the user launch the script at for example 8 it won't run, again, it will
> only run between 9 and 11.
>
> To do that I'm using this piece of code:
>
>
> MIN_HOUR=0
> MAX_HOUR=0
> while [ 1 ]
> do
>
>         if [ "$MAX_HOUR" != "$MIN_HOUR" ]
>         then
>                 while [ $CURRENT_HOUR -lt $MIN_HOUR ] || [ $CURRENT_HOUR
> -gt $MAX_HOUR ]
>                 do
>                         CURRENT_HOUR=`date +"%H"`
>                         echo "Waiting to valid time ($MIN_HOUR - $MAX_HOUR,
> current $CURRENT_HOUR)" >> $LOGFILE.err
>                         sleep 300
>                 done
>         fi
>
> The problem actually is that if I set an hour which is not between the
> interval the script is allowed to run...I'd run anyways
> So the problem is the comparation, I guess...
> It runs perfectly in AIX
> Any ideas will be apreciated
>
> Thanks
> Manuel
>

I forgot this part, which is the one that drives me mad:

line 194: [: -lt: unary operator expected

And line 194 is while [ $CURRENT_HOUR -lt $MIN_HOUR ] || [ $CURRENT_HOUR
 -gt $MAX_HOUR ]

Cheers



-- 
Manuel Arostegui Ramirez.

Electronic Mail is not secure, may not be read every day, and should not
be used for urgent or sensitive issues.




More information about the fedora-list mailing list