В цикле foreach CSH или цикле for, как я могу добавить итератор цикла или счетчик, который увеличивается с 10 до 1000 с шагом 20?
Что-то вроде foreach i (1..20..5)
или for (i=1;i<20;i++)
.
В цикле foreach CSH или цикле for, как я могу добавить итератор цикла или счетчик, который увеличивается с 10 до 1000 с шагом 20?
Что-то вроде foreach i (1..20..5)
или for (i=1;i<20;i++)
.
Если у вас есть команда seq
, вы можете использовать:
foreach i (`seq 1 5 20`)
... body ...
end
Если у вас нет seq
, вот версия, основанная на ответе @csj:
@ i = 1
while ($i <= 20)
... body ...
@ i += 5
end
jot - 1 20 5
- person Dennis Williamson; 22.02.2011
Любая документация, которую я нашел в Интернете, указывает на отсутствие цикла for. Однако можно использовать цикл while. На самом деле я не знаю csh, поэтому следующее приблизительно основано на том, что я прочитал:
set i = 10
while ($i <= 1000)
# commands...
set i = $i + 20
end
@ i = 1
и @ i = $i + 1
- person Dennis Williamson; 22.02.2011
Или вы можете использовать expr. у меня сработало следующее (в tcsh, но csh должно быть таким же):
% set n=0
% foreach x (`ls $A*`)
foreach? set n=`expr $n + 1`
foreach? echo $n
foreach? end
вывод 1 2 3 4 и т.д.