程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了BASH:循环数组值无限制大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决BASH:循环数组值无限制?

开发过程中遇到BASH:循环数组值无限制的问题如何解决?下面主要结合日常开发的经验,给出你关于BASH:循环数组值无限制的解决方法建议,希望对你解决BASH:循环数组值无限制有所启发或帮助;

在 bash 中,我想要数组:

array=(1 2 3)

然后我需要一个循环程序 where

x 将是 1,2,3,1,3...(来自数组)

我将是无限的 1,4,5,6....(主循环)

我的代码:

array=(1 2 3)
while true ; do
 ((i=i+1))
 #screen -dmS plot$i -d /destinatin$x
 echo $i $x
 sleep 1
done

我不知道如何循环数组并将 $x 设置为 1,3....

解决方法

无限循环通常使用 shell 内置命令 : 生成,该命令以单数形式不执行任何操作。所以如果你想无限循环列表的元素,你可以执行以下操作:

1.无限嵌套的 while-for 循环:

while :; do for i in "${a[@]}"; do echo "${i}"; done; done

2.使用索引重置

i=0; while :; do echo "${a[i]}"; ((i=i+1)); ((i==${#a[@]})) && i=0; done

2.使用模计算:

i=0; while :; do echo "${a[i]}"; (( i=(i+1) % ${#a[@]} )); done

3.带模索引的无限 for 循环

for ((i=0;;i++)); do echo "${a[i%${#a[@]}]}"; done
,

此代码应该可以解决您的问题:

#!/bin/bash

array=(1 2 3)
i=0
count_of_elements=${#array[@]} #counting the number of array elements

while true; do
rest=$(($i%$count_of_elements)) #counting rest of the division by count of array elements
printf "${array[$rest]}," #dispay result
i=$((i+1))
done

如果您更改输入数组,它也会起作用(例如,如果它是 array=(1 2 3 4 5)

大佬总结

以上是大佬教程为你收集整理的BASH:循环数组值无限制全部内容,希望文章能够帮你解决BASH:循环数组值无限制所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: