大佬教程收集整理的这篇文章主要介绍了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,请注明来意。