2017-09-04 6 views
1

다른 응용 프로그램의 여러 인스턴스에 대해 동일한 작업을 수행하는 다른 포트에서 실행되는 스크립트를 bash에 작성하려고합니다.bash - 콜론 배열 키 이름

bash: localhost:50010: syntax error in expression (error token is ":50010") 

내가 그이 함께 할 수있는 뭔가를 가지고 추측 :

INSTANCES=('localhost:50010' 'localhost:50011' 'localhost:50012') 
for INSTANCE in ${INSTANCES[@]}; do 
    A["$INSTANCE"]="$(do stuff with $INSTANCE)" 
    B["$INSTANCE"]="$(do more stuff with $INSTANCE)" 
done 

배쉬 배열 키 이름에 콜론이 있기 때문에이를 거부 할 것 : 내 현재의 접근 방식과 같이 배열을 사용하는 것이 었습니다 Shell Parameter Expansion 또는 이와 유사한 $INSTANCE의 내용을 조작하지 않고 내가 시도하고있는 것을 성취 할 수있는 방법이 있습니까?

미리 감사드립니다.

답변

2

콜론은 연관 배열의 배열 키 이름으로 대단히 받아 들여집니다.

당신은 먼저 연관 배열을 선언해야합니다

declare -A A B 
+1

때때로 당신이 미치게 수있는 가장 분명하고 간단한 것들입니다. 감사. – David