在CSH foreach循环或for循环中,如何添加循环迭代器或计数器,从10增加到1000,步长为20?
类似于foreach i (1..20..5)
或for (i=1;i<20;i++)
。
答案 0 :(得分:9)
如果您有seq
命令,则可以使用:
foreach i (`seq 1 5 20`)
... body ...
end
如果你没有seq
,这是一个基于@ csj答案的版本:
@ i = 1
while ($i <= 20)
... body ...
@ i += 5
end
答案 1 :(得分:2)
我在网上找到的任何文件似乎都表明没有for循环可用。但是,可以使用while循环。我实际上并不知道csh,所以以下是基于我读到的内容的近似值:
set i = 10
while ($i <= 1000)
# commands...
set i = $i + 20
end
答案 2 :(得分:0)
或者您可以使用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 等等