Bash scripting: usando forinloop com uma matriz

1

Estou tentando fazer um script que imprima todos os literais na matriz usando um loop forin ... Apenas minha primeira literal é impressa ... Alguma ajuda?

#!/bin/bash
somearray=( p 5 6 j 050yh0k 0 hkofohkf 50 )
for k in somearray
do
echo ${somearray[k]}
done
    
por pesho 01.02.2017 / 19:27

2 respostas

3

Para obter todos os elementos de uma matriz, você precisa usar a construção ${var[@]} . Então, para iterar um loop for através de todos os membros de um array:

for element in "${somearray[@]}"; do
    echo "$element"
done
    
por 01.02.2017 / 19:45
1

Para repetir os índices do array como você tentou inicialmente:

for k in "${!somearray[@]}"; do
    printf '%s\n' "${somearray[k]}"
done
    
por 01.02.2017 / 20:37

Tags