Armazenando saída nmap em uma variável bash para uso posterior

0

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?

    
por eDen 16.11.2017 / 04:46

0 respostas