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

Loops 如何在csh中为foreach添加循环计数器,loops,foreach,counter,csh,Loops,Foreach,Counter,Csh,在CSH foreach循环或for循环中,如何添加循环迭代器或计数器,该迭代器或计数器以20步从10增加到1000 类似于foreach i(1..20..5)或for(i=1;i如果您有seq命令,您可以使用: foreach i (`seq 1 5 20`) ... body ... end 如果您没有seq,以下是基于@csj答案的版本: @ i = 1 while ($i <= 20) ... body ... @ i += 5 end @i=1 while($i

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


类似于
foreach i(1..20..5)
for(i=1;i如果您有
seq
命令,您可以使用:

foreach i (`seq 1 5 20`)
  ... body ...
end
如果您没有
seq
,以下是基于@csj答案的版本:

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

while($i我在网上找到的任何文档似乎都表明没有可用的for循环。但是,while循环可以使用。我实际上不知道csh,因此根据我所读的内容,以下是近似值:

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

而($i或您可以使用expr。以下内容适用于我(在tcsh中,但csh应相同):

输出为 1. 2. 3. 4.
etc

事实上,应该是
@i=1
@i=$i+1
@Dennis,感谢语法更正。至于值,问题要求计数器以20步为单位从10到1000。因此,每次循环的初始值为10和+20。使用foreach调用csh for循环。事实上,如果键入“csh for”在google搜索框中,它显示foreach作为第一个选项。或者,对于BSD和OSX:
jot-1205
% set n=0
% foreach x (`ls $A*`)
foreach? set n=`expr $n + 1`
foreach? echo $n
foreach? end