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

发布于 2024-10-18 15:23:24 字数 153 浏览 4 评论 0原文

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

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

In CSH foreach loop or for loop, how can I add a loop iterator or counter which increases from 10 to 1000 with steps of 20?

Something like foreach i (1..20..5) or for (i=1;i<20;i++).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

落墨 2024-10-25 15:23:24

如果您有 seq 命令,则可以使用:

foreach i (`seq 1 5 20`)
  ... body ...
end

如果没有 seq,这里是基于 @csj 答案的版本:

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

If you have the seq command, you can use:

foreach i (`seq 1 5 20`)
  ... body ...
end

If you don't have seq, here is a version based on @csj's answer:

@ i = 1
while ($i <= 20)
  ... body ...
  @ i += 5
end
鱼忆七猫命九 2024-10-25 15:23:24

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

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

Any documentation I've found online seems to indictate no for loop is available. However, the while loop can be used. I don't actually know csh, so the following is approximate based on what I read:

set i = 10
while ($i <= 1000)
    # commands...
    set i = $i + 20
end
你曾走过我的故事 2024-10-25 15:23:24

或者您可以使用 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
ETC

Or you can use expr. the following worked for me (in tcsh but csh should be the same):

% set n=0
% foreach x (`ls $A*`)
foreach? set n=`expr $n + 1`
foreach? echo $n
foreach? end

output is
1
2
3
4
etc

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文