2015-01-05 2 views
0

Мне нужен мой код для чтения файлов с номером от 1 до 4000. Затем он будет делать что-то с файлами, я пытаюсь разбить их в блоках по 500 со следующим ,Вложенная петля внутри цикла while в cshell

#!/bin/tcsh 

@ x = 1 

@ looper = 1 

while ($x < 3) 
while ($looper < 500) 

@filenumber = $x -1 
@filenumber = $filenumber * 500 
@filenumber = $filenumber + $looper 

echo $filenumber 
@looper += 1 
done 

@x += 1 
done 

Я хочу, чтобы это считать от 1 до 1000 в единицах 500. Тем не менее, когда я пытаюсь этот сценарий подсчитывал только 500. Кто-нибудь знает, почему это?

Спасибо за вашу помощь

ответ

0

Вы должны инициализировать @looper = 1внутри внешнего цикла, в противном случае он инициализируется только один раз, и начинается второй итерации со значением 500.

@ x = 1 

while ($x < 3) 

@looper = 1 <-- here 

while ($looper < 500) 

@filenumber = $x -1 
@filenumber = $filenumber * 500 
@filenumber = $filenumber + $looper 

echo $filenumber 
@looper += 1 
done 

@x += 1 
done 
0

Ответ в том, что прямо под @x + = 1 линия там должна быть строка сброса $ петлитель переменной

@x += 1 
@looper = 1 
done 

Упс !!!

Смежные вопросы