我正在尝试在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
?
提前致谢!
答案 0 :(得分:2)
Colon非常被接受为关联数组的数组键名。
您只需要首先声明关联数组:
declare -A A B