Hi,

If you want to use /bin/sh, it works well if you replace

((i=i+1)) by
let i=i+1

L. Ahmadi


Uwe Dippel wrote:
I needed some little script; and - as usual - tried it out by typing:
i=0
uplim=10
while [ $i -lt $uplim ]
do
       ((i=i+1))
       echo $i
done
1
2
3
4
5
6
7
8
9
10

So good, so far.
So I put the history into a file; added #!/bin/sh
and ran it.
To my surprise, it is an endless loop printing 0.
Typed again, works. Running the script: endless loop.

Question: What is missing in the loop ? FYI: I tried all those variation of $i in the arithmetic expression, but I
won't do the trick. It works properly as line-by-line and loops endlessly
as script.

I can make it work by changing it to ...
       echo $((i=i+1))
...
, but I still ask myself, why the arithmetic expression is not being
evaluated within the script if not in combination with echo, e.g. ?

Uwe

Reply via email to