如何在csh中添加循环计数器到foreach

时间:2011-02-22 19:57:26

标签: loops foreach counter csh

在CSH foreach循环或for循环中,如何添加循环迭代器或计数器,从10增加到1000,步长为20?

类似于foreach i (1..20..5)for (i=1;i<20;i++)

3 个答案:

答案 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 等等