Estou tentando armazenar os hosts de rede em um array associativo dessa maneira
#!/bin/bash
declare -A hosts
while IFS=" " read -r host ip ;
do
hosts["$host"]=$ip
done < <(nmap -sn -oG - 192.168.1.0/24 | awk '/^Host/ {print $3, $2}')
for host in "${!hosts[@]}"; do
echo "$host -> ${hosts[$ip]}"
done
Estou tentando acabar com o valor armazenado em uma matriz e uma saída como essa
1- (home router) 192.168.1.1
2- (android-100) 192.168.1.223
3- (my box) 192.168.1.30
4- (android-111) 192.168.1.32
Com a possibilidade de fazer ping na máquina na linha número 2, por exemplo
Alguém pode me dizer o que estou fazendo de errado na primeira parte, e se há algo errado com essa abordagem?