Como atribuir valores de uma matriz a variáveis no bash

1

Eu criei uma matriz 50 x 1 no Ubuntu como segue:

#!/bin/bash
declare -A matrix
num_rows=1
num_columns=50

for ((n=0;n<=(($num_columns-1));n++)) do
for ((i=1;i<=num_rows;i++)) do
    matrix[$i,$j]=net$(($n+1))
    #echo "${matrix[$i,$j]}" >> temp
done
done

Agora quero atribuir cada elemento da matriz 50 x 1 a uma variável (digamos 'q'); por exemplo q1 = net1, q2 = net2, ... q50 = net50. Alguém sabe como conseguir isso no linux? Agradecemos antecipadamente.

    
por zsha 17.08.2016 / 15:56

1 resposta

0

Conforme solicitado, estou criando uma lista de variáveis prefixadas com q seguido por um número seqüencial (c) que é então atribuído à sua variável de matriz.

#!/bin/bash
declare -A matrix
num_rows=1
num_columns=50

c=1

for ((n=0;n<=(($num_columns-1));n++)) do
    for ((i=1;i<=num_rows;i++)) do
        matrix[$i,$j]=net$(($n+1))
        declare "q$c=${matrix[$i,$j]}"
        ((c++))
    done
done

Para gerá-los, você pode usar algo como:

for ((i=1;i<(($num_columns-1));i++)) do
    var=q$i
    echo "${!var}"
done
    
por 17.08.2016 / 20:28