50 x 1
아래와 같이 우분투에서 행렬을 만들었습니다 .
#!/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
이제 50 x 1 행렬의 각 요소를 변수(예: "q")에 할당하고 싶습니다. 예를 들어 q1=net1, q2=net2, ...q50=net50입니다. 리눅스에서 이것을 달성하는 방법을 아는 사람이 있습니까? 미리 감사드립니다.
답변1
요청에 따라 접두사가 붙은 변수 목록을 만들고 q
그 뒤에 시퀀스 번호(c)를 붙인 다음 이를 배열 변수에 할당합니다.
#!/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
이를 출력하려면 다음과 같이 사용할 수 있습니다.
for ((i=1;i<(($num_columns-1));i++)) do
var=q$i
echo "${!var}"
done