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



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

最新更新