#!/bin/bash
PS3="Input: "
while read -r addr tld; do
addrlist+=( "$addr" )
done < list.txt
echo "Which ip you want to test?"
select addr in "${addrlist[@]}"; do
ping -c5 "$addr"
break;
done
Observe que, se seu arquivo tivesse apenas um único campo (endereço), você poderia usar o bash mapfile
interno (ou seu sinônimo readarray
)
mapfile -t addrlist < list.txt
para preencher o array sem looping explícito. Se você quiser a lista hifenizada exata mostrada na pergunta original, você pode fazer algo como
mapfile -t addrlist < list.txt
echo "Which ip you want to test?"
select addr in "${addrlist[@]// /-}"; do
ping -c5 "${addr%%-*}"
break;
done
mas o código começa a ficar feio IMHO.