gpt4 book ai didi

bash - 嵌套 For 循环计数器重置

转载 作者:行者123 更新时间:2023-12-04 18:30:31 27 4
gpt4 key购买 nike

我正在尝试运行使用列表作为循环计数器的嵌套 for 循环。问题是一旦'delta'循环达到100,它不会重置为0。'edges'也有同样的问题。

我试过这个,但它似乎不适用于我的循环。
http://tldp.org/LDP/abs/html/nestedloops.html

这里有什么想法吗?这是我的代码:

#!/bin/sh

threads="1 2 4 8 16 32 64 96 128 160 192 224 256"
delta="0 10 20 30 40 50 60 70 80 90 100"
edges="16 8192"
nodes="16384"

for threads in $threads
do
for delta in $delta
do
for edges in $edges
do
for nodes in $nodes
do
printf "\n"
echo $threads
echo $delta
echo $edges
echo $nodes
done
done
done
done

预期输出:
1 0 16 16384 
1 0 8192 16384
1 10 16 16384
1 10 8192 16384
1 20 16 16384
1 20 8192 16384

最佳答案

使用 for 时像这样的循环,请确保您给循环变量一个与您正在迭代的变量不同的名称。

使用 for threads in $threads使区分循环变量( threads )和您正在循环的东西( $threads )变得困惑。

当您调用 echo $threads后来,bash 不知道您指的是第一个。

在这种情况下,您可以将循环声明更改为 for n in nodesfor t in threads ,然后 echo$n$t在最里面的循环内获得所需的输出。

关于bash - 嵌套 For 循环计数器重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26225604/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com