использование команды for в hp unix

Ниже для не работает в hp-ux. Тем не менее, он работает на машине RedHat. подскажите, пожалуйста, что здесь не так?

#/bin/ksh
Rowcount=`wc -l $acList | awk -F " " '{print $1}'`

for ((i=1; i<=Rowcount; i++)); do
.
.
.

Ошибка, которую я получаю:

 syntax error at line 4 : `(' unexpected

person ShravanM    schedule 22.09.2014    source источник
comment
@fedorqui все та же ошибка `(' неожиданно   -  person ShravanM    schedule 22.09.2014
comment
Я вижу, что это нормально либо i<=Rowcount, либо i<=$Rowcount. Я вижу, что вы можете напрямую сделать Rowcount=$(wc -l < $acList). Использование < file позволяет избежать дополнительного пространства.   -  person fedorqui 'SO stop harming'    schedule 22.09.2014


Ответы (2)


Вы можете использовать цикл while:

i=1
while (( i <= Rowcount ))
do
   # Your code
   (( i+= 1 ))
done
person Juan Diego Godoy Robles    schedule 22.09.2014

Вы также можете попробовать этот синтаксис:

#!/bin/ksh
for f in $(wc -l $acList | awk -F " " '{print $1}')
do
        print "blabla : $f"
done
person Thomas Ayoub    schedule 22.09.2014
comment
в моем случае значение Rowcount равно 3, я пробовал вашу команду, но она печатается только один раз. я хочу, чтобы набор операций выполнялся для 'Rowcount' ни раз (здесь 3). - person ShravanM; 22.09.2014
comment
@user215827 user215827 Я вижу (но не понимаю), и я не могу проверить это сейчас, извините - person Thomas Ayoub; 22.09.2014