Use for
loop como sugerido por @roamia e valide cada elemento com if
for current_port in "${port[@]}"; do
if ! [[ -n $current_port && $current_port =~ ^-?[0-9]+$ && $current_port -le 65535 ]]; then
port=$(whiptail --title "No!" --inputbox --nocancel "Error MSG." 12 50 3>&1 1>&2 2>&3)
fi
done
P. Por que você está procurando o traço -
no número da porta?