シェルスクリプトの連想配列

シェルスクリプトの連想配列

次の配列を使用して、ホスト名をキュー・マネージャー名にマップしようとしています。無効な配列スクリプトエラーが発生しました。私はここで何が間違っていましたか?

declare -A managers 

while read -r mgr host; do
managers[$mgr]=$host 
done < file.txt

QMGR=$(cat qmgr.txt) 
host=${managers[$QMGR]}

次のエラーが発生します。

Bad array sub script at line 3

関連情報