Я пытаюсь сохранить сетевые хосты в ассоциативном массиве таким образом
#!/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
Я пытаюсь получить значение, хранящееся в массиве, и выход вроде этого
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
С возможностью пинга машины в строке номер 2, например
Может кто-нибудь сказать мне, что я делаю неправильно в первой части, и если что-то не так с этим подходом? [ ! d3]