在CSH的foreach循环或for循环中,我如何添加一个循环迭代器或计数器,其步长为20,范围从10增加到1000?
类似于
类似于
foreach i(1..20..5)
或for (i=1;i<20;i++)
这样的语句。如果你有seq
命令,你可以使用:
foreach i (`seq 1 5 20`)
... body ...
end
如果您没有seq
,这里是基于@csj答案的一个版本:
@ i = 1
while ($i <= 20)
... body ...
@ i += 5
end
我在网上找到的任何文档似乎都表明没有for循环可用。但是,可以使用while循环。我实际上不知道csh,因此以下内容是根据我所读的大致估计:
set i = 10
while ($i <= 1000)
# commands...
set i = $i + 20
end
@ i = 1
和 @ i = $i + 1
。 - Dennis Williamson或者您可以使用表达式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 等等
jot - 1 20 5
- Dennis Williamson