您好我有以下数组:
array=(1 2 3 4 5 7 8 9 12 13)
我执行此for循环:
for w in ${!array[@]}
do
comp=$(echo "${array[w+1]} - ${array[w]} " | bc)
if [ $comp = 1 ]; then
/*???*/
else
/*???*/
fi
done
我想做的是在两个连续元素之间的差不等于1时插入一个值
我该怎么做?
非常感谢。
只需创建一个从最小值到最大值的循环并填补空白:
array=(1 2 3 4 5 7 8 9 12 13)
min=${array[0]}
max=${array[-1]}
new_array=()
for ((i=min; i<=max; i++)); do
if [[ " ${array[@]} " =~ " $i " ]]; then
new_array+=($i)
else
new_array+=(0)
fi
done
echo "${new_array[@]}"
这将创建一个$new_array
具有以下值的新数组:
1 2 3 4 5 0 7 8 9 0 0 12 13
这将使用“检查数组是否包含值”中的技巧。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句