Aqui está uma pequena modificação para o que você já estava fazendo:
set -f # to prevent filename expansion
for i in ${!NIC_index[@]}
do
printf "%-20s" ${NIC_details[i]}
printf "\n"
done
Eu adicionei um loop for
para passar por todos os índices da matriz - essa é a sintaxe ${!NIC...
. Como é uma matriz numérica, você pode, alternativamente, fazer um loop diretamente sobre os índices.
Observe que eu intencionalmente deixei ${NIC_details[i]}
sem aspas para que o shell dividisse o valor nos espaços que você usou para separar os valores. printf
, portanto, vê os 3 valores e assim repete a formatação de% -20s para cada um deles. Em seguida, adiciono uma nova linha após cada NIC para criar uma boa tabela.
O set -f
no topo é importante se deixarmos as variáveis sem aspas; caso contrário, o shell entrará e tentará glob todos os caracteres curinga que ele vê nas variáveis sem aspas.
Exemplo de saída:
wlp2s0 192.168.1.221 xx:xx:xx:xx:xx:xx
wwan0 none xx:xx:xx:xx:xx:xx
virbr0 192.168.122.1 00:00:00:00:00:00