Как добавить счетчик цикла в foreach в csh - PullRequest
8 голосов
/ 22 февраля 2011

В цикле foreach CSH или для цикла, как я могу добавить итератор или счетчик цикла, который увеличивается с 10 до 1000 с шагом 20?

Что-то вроде foreach i (1..20..5) или for (i=1;i<20;i++).

Ответы [ 3 ]

9 голосов
/ 22 февраля 2011

Если у вас есть команда seq, вы можете использовать:

foreach i (`seq 1 5 20`)
  ... body ...
end

Если у вас нет seq, вот версия, основанная на ответе @ csj:

@ i = 1
while ($i <= 20)
  ... body ...
  @ i += 5
end
2 голосов
/ 22 февраля 2011

Любая документация, которую я нашел в Интернете, указывает на отсутствие цикла for.Однако цикл while можно использовать.Я на самом деле не знаю, csh, поэтому следующее примерное на основе того, что я прочитал:

set i = 10
while ($i <= 1000)
    # commands...
    set i = $i + 20
end
0 голосов
/ 06 июля 2018

Или вы можете использовать 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 и т. д.

...