В цикле foreach CSH или для цикла, как я могу добавить итератор или счетчик цикла, который увеличивается с 10 до 1000 с шагом 20?
Что-то вроде foreach i (1..20..5) или for (i=1;i<20;i++).
foreach i (1..20..5)
for (i=1;i<20;i++)
Если у вас есть команда seq, вы можете использовать:
seq
foreach i (`seq 1 5 20`) ... body ... end
Если у вас нет seq, вот версия, основанная на ответе @ csj:
@ i = 1 while ($i <= 20) ... body ... @ i += 5 end
Любая документация, которую я нашел в Интернете, указывает на отсутствие цикла for.Однако цикл while можно использовать.Я на самом деле не знаю, csh, поэтому следующее примерное на основе того, что я прочитал:
set i = 10 while ($i <= 1000) # commands... set i = $i + 20 end
Или вы можете использовать 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 и т. д.