bash - 数组键名中的冒号

时间:2017-09-04 10:13:11

标签: arrays bash key

我正在尝试在bash中编写一个脚本,它为同一个应用程序的多个实例执行相同的操作 - 在不同的端口上运行。我目前的方法是使用这样的数组:

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

Bash似乎拒绝这个,因为数组键名中有一个冒号:

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

我猜这与 Shell Parameter Expansion 或类似的东西有关。有没有办法在不操纵$INSTANCE

的内容的情况下实现我的目标

提前致谢!

1 个答案:

答案 0 :(得分:2)

Colon非常被接受为关联数组的数组键名。

您只需要首先声明关联数组:

declare -A A B