Estas funções seguintes são um bom começo. foo
lerá o conteúdo do arquivo CSV e preencherá uma matriz de endereços IP que serão verificados em cada iteração para que ssh
não seja executado com o mesmo IP mais de uma vez.
# Usage: inarray "$value" "${array[@]}"
inarray()
{
local n=$1 h; shift
for h; do
[[ $n = "$h" ]] && return
done
return 1
}
# Usage: foo "$csv_file_name"
foo()
{
local ips=() arr=() filename="$1"
{ read; while IFS= read -r line; do
IFS=, read -ra arr <<< "$line"
if ! inarray "${arr[0]}" "${ips[@]}"; then
# Do whatever you want with "${arr[@]}"
# Example for arr:
# arr[0]=10.192.168.1, arr[1]=vlan-xyz, arr[2]=3
ips+=("${arr[0]}")
fi
done; } < "$filename"
}