From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeff Largent Subject: Re: bash question Date: Thu, 01 Apr 2004 09:58:05 -0500 Sender: linux-admin-owner@vger.kernel.org Message-ID: <406C2DFD.9020603@imagelinks.com> References: <012b01c41782$a2344b60$020aa8c0@Scott> <200404010903.31878.fluca1978@virgilio.it> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <200404010903.31878.fluca1978@virgilio.it> List-Id: Content-Type: text/plain; charset="us-ascii"; format="flowed" To: linux-admin@vger.kernel.org And just to show another way: #!/bin/bash for i in `seq 1 10`; do if [ $((${i} % 2)) != 0 ]; then echo ${i} fi done Luca Ferrari wrote: > On Thursday 01 April 2004 02:45 Scott@Charter's cat walking on the keyboard > wrote: > > >>I can't get this bash script to work. It's suppose to print all odd >>numbers from 1 to 10. >> >>#!/usr/bin/bash >> >>LIMIT=10 >>a=1 >> >>while [ "$a" -le $LIMIT ] >>do >> if [ "$a" -eq $(1 3 5 7 9) ] <---------Something not right here. > > > This is an awkard way to print all odd numbers, have a look at this: > > #!/bin/bash > > LIMIT=10 > a=1 > > while test ${a} -lt ${LIMIT} > do > go=`expr ${a} % 2` > if test ${go} -ne 0 > then > echo "Odd number ${a}" > fi > > a=`expr ${a} + 1` > > done > > > exit 0 > > > In this example, if you change the LIMIT value to 100, the script will print > you all odds numbers, while in your example you have to put numbers by your > own. In perl it can result as: > > #!/usr/bin/perl > > $LIMIT=10; > $a=1; > > while( $a < $LIMIT ){ > if( ($a % 2) !=0 ){ > print "Odd number $a\n"; > } > $a++; > } > > exit; > > > Luca > > -- Jeff Largent ImageLinks, Inc. Sr System Admin Melbourne, Fl 32935 (321) 253-0011 fax: (321) 253-5559