Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 我们是否可以刷新数组中的值,从shell中的for循环中获取值_Arrays_Shell_If Statement_For Loop - Fatal编程技术网

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

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)

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