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
精彩评论