开发者

How to add loop counter to foreach in csh

In CSH foreach loop or for loop, how can I add a loop iterator or counter which increases from开发者_JS百科 10 to 1000 with steps of 20?

Something like foreach i (1..20..5) or for (i=1;i<20;i++).


If you have the seq command, you can use:

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

If you don't have seq, here is a version based on @csj's answer:

@ i = 1
while ($i <= 20)
  ... body ...
  @ i += 5
end


Any documentation I've found online seems to indictate no for loop is available. However, the while loop can be used. I don't actually know csh, so the following is approximate based on what I read:

set i = 10
while ($i <= 1000)
    # commands...
    set i = $i + 20
end


Or you can use expr. the following worked for me (in tcsh but csh should be the same):

% set n=0
% foreach x (`ls $A*`)
foreach? set n=`expr $n + 1`
foreach? echo $n
foreach? end

output is 1 2 3 4 etc

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜