我有一个要求,在我运行 for 循环 1440 次,我想取出奇数,填写数组中的前六个输入,在命令中使用它们,然后用接下来的 6 个值重新刷新数组。
例如。
for (( i=1;i<1441;i++))
do
a=`expr $i % 2`
if [[ $a -ne 0 ]]
then
array[a]=((val1 val2 val3 val4 val5 val6))
echo "The set 1 contains num1 num3 num5 num7 num9 num11"
done >> This should flush the values again with next set till 1440.
这能做到吗。还是这个逻辑无效?
下面是一个将维护长度为 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
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