我们可以刷新数组中的值,从shell中获取for循环中的值

时间:2013-09-30 05:55:01

标签: arrays shell if-statement for-loop

我有一个要求,在我运行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.

可以这样做。或者这个逻辑是无效的吗?

1 个答案:

答案 0 :(得分:0)

这是一个循环,它将维护一个长度为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