Bash Array: find the first missing integer

The script below will find the first missing number in an array of integers.

#!/bin/bash
array=(100 101 102 105)
for (( i = 0 ; i < $((${#array[@]}-1)) ; i++ )); do
if [ $((${array[$i]}+1)) -ne ${array[$(($i + 1))]} ] ;then 
    M_NUMBER="$((${array[$i]}+1))"
    break
fi
done

echo $M_NUMBER

Explaining the code:

$((${#array[@]}-1)) – number of array elements minus one

$((${array[$i]}+1)) – i-element of the array plus one, starting from the first element

${array[$(($i + 1))]} – i+1 (next) element of the array, starting from the second element

If the next element is not equal to previous element plus one, the script will print the missing number – $((${array[$i]}+1))

PS. If you liked this post please share it with your friends on the social networks using the buttons on the left or simply leave a reply below. Thanks.

 

Leave a Comment