我有这个脚本:
#!/bin/bash
len=$1
numbers=("0" "1" "2" "3" "4" "5" "6" "7" "8" "9")
for i in $(seq 0 $len)
do
echo -n ${numbers[i]}
done
echo
当我运行时:./ script 9
我得到了这个结果 -
0123456789
没关系,但是,如果我想要这个输出呢?
012345678901234567890123456789
一旦从数字数组中打印出最后一个元素,那么,如何让它再次从第一个元素中再次打印出来?
答案 0 :(得分:2)
对数组索引使用模运算。
len=$1
numbers=("0" "1" "2" "3" "4" "5" "6" "7" "8" "9")
for i in $(seq 0 $len)
do
echo -n ${numbers[i % ${#numbers[@]}]}
done
echo
例如,如果数组中有10个数字,当i
达到10时,您希望使用10 % 10 == 0
作为数组索引。