0
출력에서 멋진 깔끔한 테이블을 만들려고합니다. 다음은 지금 작업하고있는 코드입니다 :Bash 4 연관 배열 생성
vmnumber=0
declare -A vm_array=()
for vm in $vms; do
declare vm_array[$vmnumber][cpu]="10"
echo "Test ${vm_array[$vmnumber][cpu]}"
declare vm_array[$vmnumber][memory]="20"
declare vm_array[$vmnumber][diskspace]="20"
vmnumber=$(($vmnumber + 1))
done
# Table output
for((i=0;i<$vmnumber;i++)); do
printf "%10s %10s %10s" vm_array[$i][cpu] vm_array[$i][memory] vm_array[$i][diskspace]"
done
에코가 작동하지 않고 변수 이름 만이 printf에 나와 있습니다.
이 값들 중 연관 배열을 어떻게 생성합니까?
Bash는 다차원 배열 기간을 지원하지 않습니다. –
BTW,'for vm in $ vms'는 여러분이 뭔가 잘못하고 있음을 나타냅니다. 'vms'을 배열로 정의했다면, 구문은'for vm in "$ {vms [@]}"'; 배열로 정의하지 않으므로 많은 버그가 발생하기 쉽습니다. 예를 들어,'*'항목이 있으면 현재 디렉토리의 파일 이름 목록으로 바뀝니다. ''guest machine ''이라는 항목이 있다면''guest''라는 이름의 VM과''machine ''이라고 이름 붙여진 VM으로 파싱됩니다. 필드 분리를 통해 문자열을 구성 요소로 분해하여 반복 할 때 전체적으로 오류가 발생하기 쉽습니다. 하지 마. –