Arrays 我们是否可以刷新数组中的值,从shell中的for循环中获取值
我有一个要求,在这里,我运行for循环1440次,我想去掉奇数,填充数组中的前六个条目,在命令中使用它们,然后用接下来的6个值重新刷新数组 例如Arrays 我们是否可以刷新数组中的值,从shell中的for循环中获取值,arrays,shell,if-statement,for-loop,Arrays,Shell,If Statement,For Loop,我有一个要求,在这里,我运行for循环1440次,我想去掉奇数,填充数组中的前六个条目,在命令中使用它们,然后用接下来的6个值重新刷新数组 例如 这是可以做到的。或者该逻辑无效?这里有一个循环,它将维持长度为6的队列: last6=(0 1 3 5 7 9) # a 6-element array # loop over odd numbers for ((i=11; i<=1440; i+=2)); do last6=("${last6[@]:1:5}" $i)
这是可以做到的。或者该逻辑无效?这里有一个循环,它将维持长度为6的队列:
last6=(0 1 3 5 7 9) # a 6-element array
# loop over odd numbers
for ((i=11; i<=1440; i+=2)); do
last6=("${last6[@]:1:5}" $i) # discard the first element and add a new elem
echo "${last6[*]}"
done
不清楚你在问什么。@devnull:我想实现一种逻辑,从一组数字中提取奇数,将其中的前六个放在一个数组中,使用数组中的这六个数字,到一行,然后返回到下六个值,依此类推。你是如何使用数组的?顺便说一句,数组的每个元素似乎只使用一次,它本身就是一个由6个值组成的数组,其来源不清楚。bash不容易支持嵌套数组,因为它们是作为引用的辅助源,而不是作为复杂数据结构的构建块。。。对于循环表示法,但不要使用a=$$i%2或其附近的值而不是expr。然而,这与你的问题无关——这个问题还不清楚。您的代码缺少一个fi,并且没有使用数组,因此不清楚您要做什么。
last6=(0 1 3 5 7 9) # a 6-element array
# loop over odd numbers
for ((i=11; i<=1440; i+=2)); do
last6=("${last6[@]:1:5}" $i) # discard the first element and add a new elem
echo "${last6[*]}"
done
1 3 5 7 9 11
3 5 7 9 11 13
5 7 9 11 13 15
7 9 11 13 15 17
...
1425 1427 1429 1431 1433 1435
1427 1429 1431 1433 1435 1437
1429 1431 1433 1435 1437 1439