【发布时间】:2011-07-02 06:39:08
【问题描述】:
在 CSH foreach 循环或 for 循环中,如何添加从 10 增加到 1000 且步长为 20 的循环迭代器或计数器?
类似foreach i (1..20..5) 或for (i=1;i<20;i++)。
【问题讨论】:
在 CSH foreach 循环或 for 循环中,如何添加从 10 增加到 1000 且步长为 20 的循环迭代器或计数器?
类似foreach i (1..20..5) 或for (i=1;i<20;i++)。
【问题讨论】:
或者你可以使用 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 等等
【讨论】:
如果你有seq 命令,你可以使用:
foreach i (`seq 1 5 20`)
... body ...
end
如果你没有seq,这里有一个基于@csj 答案的版本:
@ i = 1
while ($i <= 20)
... body ...
@ i += 5
end
【讨论】:
jot - 1 20 5
我在网上找到的任何文档似乎都表明没有可用的 for 循环。但是,可以使用 while 循环。我实际上并不了解 csh,因此根据我阅读的内容,以下是近似值:
set i = 10
while ($i <= 1000)
# commands...
set i = $i + 20
end
【讨论】:
@ i = 1和@ i = $i + 1