2012-04-11 1 views
1

, 나는 느낌표 구문을 사용하여 배열의 키에 액세스 할 수 없습니다입니다 "키 : 0"액세스 bash는 배열 키 (Mac)를 어떤 이유

무엇 오전 내가 여기서 잘못하고있는거야?

또한 값을 추가하고 싶습니다.

그래서 우리의 풋은 다음과 같습니다

키 : FR, 값 : 프레드릭

답변

1

이 문제는 declare -a입니다.

설명서 페이지에 따라 declare -A이어야합니다.

declare [-aAfFgilrtux] [-p] [name[=value] ...] 
    ... 
    -a  Each name is an indexed array variable (see Arrays above). 
    -A  Each name is an associative array variable (see Arrays above). 

대신이 시도 : 내가 처음에 뭘하려

declare -A sites 
sites=(["fr"]="frederick" ["an"]="annapolis") 

for i in "${!sites[@]}" 
    do 
    echo "key: $i, value: ${sites[$i]}" 
    done 
+0

했다. 그러나 내가 게시 한 스크립트를 실행하면 다음과 같이 출력됩니다. 3 행 : 선언 : -A : 잘못된 옵션 선언 : 사용법 : [-afFirtx] [-p] [이름 [= 값] ...] 키 선언 : 0, value : annapolis – jessh

+0

이것은 도움이 될 수도 있습니다 : bash --version GNU bash, 버전 3.2.48 (1) – jessh

+6

연관 배열은 bash> = 4.0을 필요로합니다. http://tiswww.case.edu/php/chet/bash/NEWS를 참조하십시오. 그리고 bash 3.2의 man 페이지가 연관 배열에 대해 아무 말도하지 않는다는 사실. ;-) – Mikel