Subject: Re: sh arithmetic expression
To: Florian Stoehr <netbsd@wolfnode.de>
From: Jason M. Leonard <fuzz@ldc.upenn.edu>
List: netbsd-users
Date: 12/28/2004 21:21:30
On Wed, 29 Dec 2004, Florian Stoehr wrote:
> On Tue, 28 Dec 2004, Jason M. Leonard wrote:
>
>>
>>
>> On Wed, 29 Dec 2004, Florian Stoehr wrote:
>>
>>> Hi,
>>>
>>> the follwing will run with bash, but not with /bin/sh. How to write the
>>> increment statement so that /bin/sh will like it? I played around with
>>> "let" but without success.
>>>
>>> #!/bin/sh
>>> i=1
>>> while [ $i -le $1 ]
>>> do
>>> echo "Run " $i
>>> i=$[$i+1] <--- bash can do that, not /bin/sh
>>> done
>>
>> let i=$((i+1))
>>
>>
>
> Hm ... as I said, I tried that with let and I did it as in sh(1) with
> $((expr)), but it doesn't seem to work:
>
> #!/bin/sh
> i=1
> while [ $i -le $1 ]
> do
> echo "Run " $i
> let i=$((i+1))
> done
>
>
> Gives:
>
> flo@irina [/tmp] # ./test.sh 5
> Run 1
> ./test.sh: arith: syntax error: "i+1"
>
> ???
>
> -Flo
Something hates you? The same code, copy and pasted from your email:
lorax:~ fuzz$ ./test.sh 5
Run 1
2
Run 2
3
Run 3
4
Run 4
5
Run 5
6
:Fuzz