Bash如何实现无限循环遍历数组且主计数器持续递增
Bash 循环遍历数组实现循环取值方案
你可以通过计数器对数组长度取模的方式计算当前数组下标,实现数组元素的循环取值,完整实现代码如下:
array=(1 2 3) # 提前获取数组长度,避免每次循环重复计算 arr_len=${#array[@]} while true ; do ((i=i+1)) # 计算当前对应的数组下标,i从1开始所以减1后取模 idx=$(( (i-1) % arr_len )) x=${array[$idx]} # 你原有的业务代码可以直接保留 #screen -dmS plot$i -d /destinatin$x echo $i $x sleep 1 done
实现说明
- 用
${#array[@]}获取数组的元素总个数,示例中值为3 - 每次循环通过
(i-1) % arr_len计算得到0~2循环的数组下标,对应取出的x值就会按照1、2、3、1、2、3的规律循环 - 主计数器i会保持自然递增,完全符合需求
运行后前6次的输出示例如下:
1 1 2 2 3 3 4 1 5 2 6 3
内容的提问来源于stack exchange,提问作者zeljko
相关产品推荐
相关产品推荐

